如果两个字段不是复合索引的一部分,那么当您查询这两个字段时会发生什么情况,例如:
db.collection.ensureIndex( { a: 1 } )
db.collection.ensureIndex( { b: 1 } )
db.collection.find( { a: 2, b: 2 } )
我想知道是否会扫描大量文档,或者Mongo DB不会扫描任何内容,而
indexOnly: YES
只有当您要查找的所有值都在index中(包括sort)时,explain才返回
在本例中,您按两个字段进行查询,但其中只有一个字段位于一个单独的索引中。
考虑到MongoDB不能对单个子句使用多个索引(codeor/code>是例外,因为这里它是多子句,它也不同于普通查询),它将不执行
还要注意,要正确使用
即:
db.ensureIndex({a:1,b:1});
db.col.find({a:1}, {_id:0,a:1,b:1}).sort({b:1});
将使用