您能否对两个字段执行MongoDB覆盖的查询,例如
db.collection.find( { _id: 1, a: 2 } )没有的有一个复合索引,例如
db.collection.ensureIndex( { _id: 1, a: 1 } )但是,相反,只有一个索引用于_id (默认情况下是这样),另一个索引用于字段"a",如
db.collection.ensureIndex( { a: 1 } )换句话说,我想知道是否为了对两个字段执行一个覆盖的查询,我需要一个复合索引,而只需要两个(即不是复合)索引,每个字段只需要一个索引。
发布于 2013-01-12 19:39:59
查询只使用一个索引。
您的示例显示_id是索引的元素之一?_id需要在集合中是唯一的,因此创建_id和其他什么的复合索引是没有意义的。
如果你有:
db.collection.ensureIndex( { a: 1, b: 1 })然后,您可以根据需要独立使用a索引,也可以将其作为b的复合索引使用。
https://stackoverflow.com/questions/14296854
复制相似问题