查询以将非空数组与特定值匹配

时间:2014-08-06 23:05:49

标签: mongodb mongodb-query

例如

> db.test.insert( { 'a':5 } )
> db.test.insert( { 'a': [5] } )

> db.test.find({ 'a':5})
{ "_id" : ObjectId("53e2b4366c9ef5cceb327e01"), "a" : 5 }
{ "_id" : ObjectId("53e2b43b6c9ef5cceb327e02"), "a" : [ 5 ] }

但是,我只希望能够匹配第一个文件。

1 个答案:

答案 0 :(得分:5)

最简单的方法是使用$exists和"点符号"来测试数组元素是否存在:

db.test.find({ "a": 5, "a.0": { "$exists": false } })

说找到" a"等于5,但是" a"中的第一个数组元素不存在。