gpt4 book ai didi

mongodb - MongoDB (WiredTiger) 返回的计数不正确

转载 作者:IT老高 更新时间:2023-10-28 13:13:12 24 4
gpt4 key购买 nike

这听起来很奇怪,我希望我做错了什么,但是我的 MongoDB 集合在我的集合中将 Count 返回了一个。

我有一个包含(我确定)359671 个文档的集合。但是 count() 命令返回 359670 个文档。

我正在使用 mongo shell 执行 count() 命令:

rs0:PRIMARY> db.COLLECTION.count()
359670

这是不正确的。

它没有找到我收藏中的每一个文档。

如果我提供以下查询来计数,我会得到正确的结果:

rs0:PRIMARY> db.COLLECTION.count({_id: {$exists: true}})
359671

我相信这是 WiredTiger 中的一个错误。据我所知,每个文档都有相同的定义,一个从 0 到 359670 的整数的 _id 字段和一个 BinData 字段。旧的存储引擎(或 Mongo 2 都可能导致问题)没有这个问题。

这是我做错了吗?我不想使用 {_id: {$exists: true}} 查询,因为这需要 100 倍的时间才能完成。

最佳答案

据此issue ,如果 mongodb 遇到硬崩溃并且未正常关闭,则可能会发生此行为。如果不发出任何查询,mongodb 可能只是回退到收集的统计信息。

根据文章,调用 db.COLLECTION.validate(true) 应该重置计数器。

关于mongodb - MongoDB (WiredTiger) 返回的计数不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30715466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com