【发布时间】:2015-05-14 11:05:31
【问题描述】:
我注意到 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
}
【问题讨论】:
-
不,我没有使用分片(我也发现这可能是孤立文档的问题,但不,它只是一台机器)
-
db.mydocuments.stats()的文档数是多少?你有另一个索引可以测试计数吗? -
我刚刚用统计数据编辑了这个问题,不幸的是我没有另一个索引可以测试
标签: mongodb mongodb-query