【发布时间】:2017-02-10 07:59:43
【问题描述】:
我在产品集合中有以下文档。
db.product.find()
{ "_id" : 1, "results" : [ { "product" : "abc", "score" : 10 }, { "product" : "xyz", "score" : 5 } ] }
{ "_id" : 2, "results" : [ { "product" : "abc", "score" : 8 }, { "product" : "xyz", "score" : 7 } ] }
{ "_id" : 3, "results" : [ { "product" : "abc", "score" : 7 }, { "product" : "xyz", "score" : 8 } ] }
以下查询使用 elemMatch 返回结果。
> db.product.find( { results : { $elemMatch : { product : "xyz" , score : { $eq : 5} } } } )
{ "_id" : 1, "results" : [ { "product" : "abc", "score" : 10 }, { "product" : "xyz", "score" : 5 } ] }
同样,这也会返回预期的结果。
> db.product.find( { results : { product : "xyz" , score : 5 } } )
{ "_id" : 1, "results" : [ { "product" : "abc", "score" : 10 }, { "product" : "xyz", "score" : 5 } ] }
但是当我在数组中使用比较运算符时,我没有得到任何结果。
db.product.find( { results : { product : "xyz" , score : { $eq : 5} } } )
我无法弄清楚这种意外行为。
【问题讨论】:
标签: arrays mongodb mongodb-query