我在Mongo(使用本机节点驱动程序的v3.4)中使用排序规则来对API端点进行不区分大小写的搜索。作为响应的一部分,我将有关查询的元数据发送回消费者,其中包括对匹配文档的计数。一切都工作正常,直到我介绍了排序规则......现在看来,cursor.count()方法不包括与排序规则操作匹配的文档。
请考虑我们正在搜索名为' docs'已过滤用户名。我们有15个用户名为' foo'的文档,以及30个用户名值为' Foo'的文档。代码如下所示:
// 'query' is the query params submitted to the API endpoint and then parsed for use
const cursor = db.collection('docs').find(query,
{ collation: { locale: 'en_US', strength: 2 } });
cursor.count()
.then((count) => {
console.log(count);
})
.then(//send the response
当查询'记录的计数是:15(其中'用户名'值正好' foo'的文件数量是' foo'查询是' Foo'但是,记录的计数是30,这是其用户名'值恰好是' Foo'的文档的确切数量。但是,在这两种情况下,45个文件作为回复发送(考虑到整理,这是正确的。)
造成这种差距的原因是什么? cursor.count()有没有办法反映结果的总数?