gpt4 book ai didi

MongoDB count with query 返回的记录多于 count all

转载 作者:可可西里 更新时间:2023-11-01 09:55:37 25 4
gpt4 key购买 nike

我注意到 MongoDB 的一个奇怪行为,我试着猜测可能是什么问题:

我有一个 MongoDB,在一个集合中有很多文档。我运行了以下查询:

db.mydocuments.count({_id:{$lte:new ObjectId("549010c9e4b06c2f044f27f4")}});

结果是66.579.389个文档

比我运行以下:

db.mydocuments.count();

令人惊讶的是我得到了以下总数:32.606.242

这怎么可能?集合的总计数如何小于查询计数?至少它需要等于查询计数。

db.mydocument.stats() 是:

{
"ns" : "mydb.documents.photos",
"count" : 32606242,
"size" : 76109891776,
"avgObjSize" : 2334,
"storageSize" : 164665658240,
"numExtents" : 97,
"nindexes" : 1,
"lastExtentSize" : 2146426864,
"paddingFactor" : 1,
"systemFlags" : 0,
"userFlags" : 0,
"totalIndexSize" : 1944138336,
"indexSizes" : {
"_id_" : 1944138336
},
"ok" : 1
}

最佳答案

.stats() 返回分配记录的数量以及平均对象大小、范围等。此调用不应该获取有关您的集合的确切信息(例如许多文档)。

例子:您插入了 100 个文档,然后删除了 99 个。该集合仍分配用于处理 100 个文档。不要依赖 .stats() 调用,除非您需要它仅供引用。

在您的情况下,我们有完全相反的行为。可能是索引损坏了。

关于MongoDB count with query 返回的记录多于 count all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29007279/

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