我有以下模式的集合:添加索引改變查詢結果
db.posts.insert({sents:
[
{uni:['a','b','c'],bi:[['a','b'],['b','c']]},
{uni:['x','y','z'],bi:[['x','y'],['y','z']]}
]})
下面的查詢返回上方插入記錄:
> db.posts.find({'sents.bi':{'$elemMatch':{'$in':['a']}}})
{
"_id" : ObjectId("537595f254bae6dfabddf0c9"),
"sents" : [
{
"uni": [ "a", "b", "c" ],
"bi": [[ "a", "b" ], [ "b", "c" ] ]
},
{
"uni": [ "x", "y", "z" ],
"bi": [ [ "x", "y" ], [ "y", "z" ] ]
}
]
}
然而,當我在創建索引'sents.bi':
>db.posts.ensureIndex({'sents.bi':1})
上述查詢停止工作G:
> db.posts.find({'sents.bi':{'$elemMatch':{'$in':['a']}}}).count()
0
我知道我做錯了什麼,我只是不知道它是什麼,我做錯了:)
謝謝
您使用的是哪個版本的MongoDB? –
無論有沒有索引,上面的查詢都不會給我任何東西。 – yaoxing
@yaoxing那是因爲你使用的是2.6或更高版本。完整的原因在你的回答中評論。 –