子查询的输出与 MongoDb 中的总数有何不同

How output of a sub-query can be different from the total in MongoDb

我使用聚合操作合并了“_id”上的两个不同集合。我发现没有匹配的记录,所以我简单地添加了一条。后来,我查询了最终的集合,得到了这些奇怪的结果。

db.5k_irrelavant.find({}).count();

11001

db.5k_irrelavant.find({"Language": {$eq : "English"}}).count();

11519

db.5k_irrelavant.distinct("Language");
[
    "English"
]

合并时,我确保所有文档中都应包含 "Language": "English" 字段。第三个查询清除它。奇怪的是,输出集合中所有文档的第一个查询比第二个查询的文档数少 518 个文档。怎么可能?我本可以换个方式。我不明白这是为什么。理想情况下,两个查询都应该输出相同的数字。有什么建议吗?

如果您使用的是 'WiredTiger' 引擎,当发生意外或强制关闭时,count() 结果可能会出现问题。

https://docs.mongodb.com/manual/reference/method/db.collection.count/#accuracy-after-unexpected-shutdown