1

假设,我们有如下提到的 mongo 集合

db.test.findOne() { "_id" : ObjectId("52d0313dc62b629cfabe22ff"), "a" : 1, "b" : 1, "c" : 1 }

这个集合有超过百万条记录。

现在,如果我想找出条件为字段“a”大于 1000 和“b”字段小于 9000 的记录,那么我的 mongo 查询可能像..

db.test.find({'a':{'$gt':1000}, 'b':{'$lt': 9000}}, {'a':1, 'c':1}) 和使上述搜索更快,我已经在“a”和“b”字段上应用了复合索引。它已被上述查询使用..

现在,您必须知道,所有集合都带有默认索引“ _id_ ”字段作为主键。

我上面的 mongo 查询是否使用了默认索引“ _ id _ ”?如果是,那怎么办?如果不是,那为什么?

谢谢你 javaamtho

4

1 回答 1

2

,mongo 不会在查询中使用 _id 上的默认索引,因为 _id 既不会出现在条件中,也不会出现在查询的排序中。

于 2014-01-11T10:03:37.760 回答