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在阵列上运行。我以前的解决方案选择了单个元素。