如果我有用户集合:
{
name: "sue"
age: 27
groups: ["football", "hockey"]
}
...
db.users.find( { groups: 'hockey' } )
mongodb 是否需要访问每个文档中的每个列表元素?
更一般地说,是否有关于运营时间成本的指南?
如果我有用户集合:
{
name: "sue"
age: 27
groups: ["football", "hockey"]
}
...
db.users.find( { groups: 'hockey' } )
mongodb 是否需要访问每个文档中的每个列表元素?
更一般地说,是否有关于运营时间成本的指南?
您可以在 users 集合上创建索引:
db.users.ensureIndex( {"groups" : 1} )
如果这样做,mongodb 将不会在您运行搜索时访问 groups 字段中的每个元素。利用
db.users.find( { groups: 'hockey' } ).explain()
查看使用的索引。
根据查询,它可能根本不需要检索用户记录。例如,
db.users.count( { groups: "hockey"} )
是一个“覆盖查询”,可以单独使用索引来回答。有关更多信息,请参阅http://docs.mongodb.org/manual/tutorial/create-indexes-to-support-queries/。