Mongodb-查询多键索引文档
我的问题是关于MongoDB在查询多键文档时的操作方式 假设我有这些文件:Mongodb-查询多键索引文档,mongodb,indexing,multikey,Mongodb,Indexing,Multikey,我的问题是关于MongoDB在查询多键文档时的操作方式 假设我有这些文件: { 答:1,, b:2, c:['x','y','z'] }, { a:3, b:空, c:['x','z'] } 我的问题是: db..find({b:null,c:'x'}) 我的索引是: db..ensureIndex({c:1}) 我的问题是:对于上面的查询(要求c和b),MongoDB如何调用查询?它是否“看到”我在c上有一个索引,或者它是否尝试只查找c和b的索引 即使语句包括c和b使用.expla
{
答:1,,
b:2,
c:['x','y','z']
},
{
a:3,
b:空,
c:['x','z']
}
我的问题是:
db..find({b:null,c:'x'})
我的索引是:
db..ensureIndex({c:1})
我的问题是:对于上面的查询(要求c
和b
),MongoDB如何调用查询?它是否“看到”我在c
上有一个索引,或者它是否尝试只查找c
和b
的索引
即使语句包括
c
和b使用.explain()方法在find()之后查找nscannedObjects和nscanned,查询也只会查找c
的索引。它可以帮助您检查Index的使用情况刚刚完成的。。。nscannedObjects是集合的大小。为什么它要遍历整个集合,只是为了通过索引字段获取一些内容。我根据您的文档为自己制作了一个测试用例,为了在2个文档中搜索,我得到nscaned=1,这意味着它使用了索引。查看.explain()中的游标,如果它使用索引,则该游标应该类似于“BtreeCursor c_1”。现在可以了。为大型集合编制索引可能需要时间。