首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有复合索引的两个字段的MongoDB覆盖查询

没有复合索引的两个字段的MongoDB覆盖查询
EN

Stack Overflow用户
提问于 2013-01-12 18:59:56
回答 1查看 215关注 0票数 1

您能否对两个字段执行MongoDB覆盖的查询,例如

代码语言:javascript
复制
db.collection.find( { _id: 1, a: 2 } )

没有有一个复合索引,例如

代码语言:javascript
复制
db.collection.ensureIndex( { _id: 1, a: 1 } )

但是,相反,只有一个索引用于_id (默认情况下是这样),另一个索引用于字段"a",如

代码语言:javascript
复制
db.collection.ensureIndex( { a: 1 } )

换句话说,我想知道是否为了对两个字段执行一个覆盖的查询,我需要一个复合索引,而只需要两个(即不是复合)索引,每个字段只需要一个索引。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-12 19:39:59

查询只使用一个索引

您的示例显示_id是索引的元素之一?_id需要在集合中是唯一的,因此创建_id和其他什么的复合索引是没有意义的。

如果你有:

代码语言:javascript
复制
db.collection.ensureIndex( { a: 1, b: 1 })

然后,您可以根据需要独立使用a索引,也可以将其作为b的复合索引使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14296854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档