【发布时间】:2014-04-18 16:03:50
【问题描述】:
我有一个带有文本索引的 MongoDB 数据库。为了性能起见,我想限制在进行文本搜索时扫描的文档数量。但是,两者:
db.collection.find({$text:{$search:"something"}}).explain()
和
db.collection.find({$text:{$search:"something"}})._addSpecial({"$maxScan":1}).explain()
给我同样的结果:
{
"cursor": "TextCursor",
"n": 6672,
"nscannedObjects": 6672,
"nscanned": 6672,
"nscannedObjectsAllPlans": 6672,
"nscannedAllPlans": 6672.
"scanAndOrder": false,
"nYields": 104,
"nChunkSkips": 0,
...
}
第二个查询不应该只扫描一个文档吗?更一般地说,假设使用 limit() 不能解决问题,我如何确保我的搜索不会花费很长时间?
但是,当我尝试对另一个非文本查询进行相同操作时,它会按预期工作。
我正在使用 MongoDB 2.6
【问题讨论】:
标签: mongodb