MongoDB查询数组中的双嵌套文档

时间:2014-08-19 21:19:05

标签: mongodb

我想知道如何从数组中的嵌入式文档中查询。我有以下结构:

{ "targetId" : 2, "metaData" : [ {     "key" : "id",     "value" : 1 },     {     "key" :        "name",     "value" : "Parisa" },     {     "key" : "img",     "value" : {     "imgid" : 1,         "imgName" : "img1" } } ] 

我可以搜索简单的键值,例如key = id和value = 1,但我无法根据嵌入文档的值进行搜索,例如键= “IMG”

我尝试了以下查询,但它不起作用:

db.test.find({"metaData":{$elemMatch:{"key":"img", "value":{"imgid":1}}}})

你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

我认为您的查询中的“价值”部分有点偏差。您需要将文档元素放在条件中:

b.test.find({"metaData":{$elemMatch:{"key":"img", "value.imgid":1}}})