Using CouchDB rich query functionality in the current implementation introduces a potential phantom read problem. As an example if endorsing chaincode performs a rich query to determine if a transaction is a duplicate and returns no results (happy path), by the time the commit happens that same query "could" produce a different result in the situation where a prior transaction was committed between the endorsement and committing phase.
Range queries against the LevelDB protect against this by rerunning the query at commit time. Currently, the rich query is not rerun and thus the result set is not validated for the query at time of commit. Protection against phantom reads should be included for CouchDB rich queries.