Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Node.js 使用mongoose返回单个嵌套数组对象_Node.js_Mongodb_Mongoose_Mongodb Query - Fatal编程技术网

Node.js 使用mongoose返回单个嵌套数组对象

Node.js 使用mongoose返回单个嵌套数组对象,node.js,mongodb,mongoose,mongodb-query,Node.js,Mongodb,Mongoose,Mongodb Query,我整个上午都在努力解决这个问题。我试图从数组中提取单个嵌套对象。我已经收到了,但我无法返回所需的对象 视频采集 { "_id": ObjectID("95738ax1795b45f0hgn8dbfd8"), "playlist": [ { "videos": [ { "title": "Video Title 1", "slug": "video-1" }, {

我整个上午都在努力解决这个问题。我试图从数组中提取单个嵌套对象。我已经收到了,但我无法返回所需的对象

视频采集

{
  "_id": ObjectID("95738ax1795b45f0hgn8dbfd8"),
  "playlist": [
    {
      "videos": [
        {
          "title": "Video Title 1",
          "slug": "video-1"      
        },
        {
          "title": "Video Title 2",
          "slug": "video-2"
        }
      ],
      "related": [
        {
          ....
        }
      ]
    }
  ]
}
在MongoDB CLI中运行以下查询时,返回的结果为零,或者返回整个文档

db.videocollection.find({}, { $elemMatch: {'playlist.videos.slug':'video-2'} } )

db.videocollection.find({}, {_id: 0, 'playlist.0.videos': {$elemMatch: {'slug': 'video-2' }}})

我正在尝试查询视频数组中的
slug

正确的查询应该是:

db.videocollection.find({ 'playlist.$.videos': { $elemMatch: { 'slug': 'video-2'} } })

$
是数组中的索引,表示数组中的任何索引。

是否希望整个
播放列表
视频
仅具有匹配的子文档?请发布预期的输出。不幸的是,当我通过CLI运行它时,它仍然返回为空。我在mongo 3.2.1上。这个问题已经解决了<代码>$elemMatch在阵列上运行。我以前的解决方案选择了单个元素。