コレクション:
[
{
tracks: [{_id: 'xxx', title: 'track x'}, {_id: 'yyy', title: 'track y'}
},
{
tracks: [{_id: 'zzz', title: 'track z'}, {_id: 'ttt', , title: 'track t'}
}
]
IDxxxと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フレームワークを使用してクエリを作成します。