Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Mongo db-查询嵌套数组和对象_Mongodb_Mongodb Query - Fatal编程技术网

Mongodb Mongo db-查询嵌套数组和对象

Mongodb Mongo db-查询嵌套数组和对象,mongodb,mongodb-query,Mongodb,Mongodb Query,我的文件结构如下: { "_id":"12345", "value":{ "T":0, "v":[ { "name":"JW", "cost":100 } ] } } 如何查询名称键?我尝试了点符号,但运气不好(我认为它只适用于两个级别)不清楚您到底尝试了什么,但这应该可以通过name找到上面的文档: db.collection.find({ "value.

我的文件结构如下:

{
   "_id":"12345",
   "value":{
      "T":0,
      "v":[
         {
            "name":"JW",
            "cost":100
         }
      ]
   }
}

如何查询名称键?我尝试了点符号,但运气不好(我认为它只适用于两个级别)

不清楚您到底尝试了什么,但这应该可以通过
name
找到上面的文档:

db.collection.find({ "value.v.name": "JW" })

您应该使用
$elemMatch
运算符:

db.collection.find({
    'value.v': { 
        $elemMatch: {
            name: 'JW', // "name == 'JW'"
            cost : 100 //if you need "&& cost == 100"
        }
    }
});

谢谢,我确信它对我不起作用,也许我的查询错了。我认为你不能在数组上使用点运算符。@SamuelO'Malley我刚刚更新了引用链接,更好地显示了数组支持这一点。如果你碰巧做了分组,然后,您需要在
value.v
键上使用
$unwind
操作,然后才能操作
name
/
cost
字段。