收藏:
[
{
tracks: [{_id: 'xxx', title: 'track x'}, {_id: 'yyy', title: 'track y'}
},
{
tracks: [{_id: 'zzz', title: 'track z'}, {_id: 'ttt', , title: 'track t'}
}
]
我想获得只包含 id 为 xxx 和 zzz 的曲目的结果集:
tracks: [{_id: 'xxx'}, {_id: 'zzz'}
我尝试使用聚合框架:
{$unwind : "$tracks" },
{$match: {'tracks._id': {$in:['xxx', 'zzz']}} }
但它返回空集 []
对我来说奇怪的是,如果我尝试与另一个(字段不是_id)匹配,它会起作用
{$unwind : "$tracks" },
{$match: {'tracks.title': {$in:['track x', 'track x']}} }
我怎样才能完成我的任务?
PS 我使用 mongoose.js 框架进行查询。