2

私は今問題に直面しており、それに対する解決策を見つけることができません。各ドキュメントの配列にサブドキュメントを含むコレクションがあり、サブドキュメントごとにドキュメントを取得したいと考えています。

例を挙げれば、説明がより簡単になります。コレクションにこの「スキーマ」があるとしましょう:

{
    a: String,
    b: [String]
}

a と b の両方が必要です。このコレクションのドキュメントは次のようになります。

{
    a : 'hey',
    b: ['me', 'you']
}

このドキュメントをそのまま返さないマングースクエリを作成する方法を見つけたいと思いますが、これらの2つのドキュメントは次のとおりです。

[{
    a: 'hey',
    b: 'me'
 },
 {
     a: 'hey',
     b: 'you'
 }]

それは可能ですか?

前もって感謝します。

PS : 簡単な JS 関数を使用してリストを取得したら、これを実行できることはわかっていますが、完全なリストを取得して使用を開始するのが待ちきれません。

4

1 に答える 1

2

これはまさに$unwind集計演算子が行うことです。

MyModel.aggregate({$unwind: '$b'}, function(err, result) { ... });

results次のような配列を取得します。

[ { _id: 524d5f6e1576f8a0f35fca8e, a: 'hey', b: 'me' },
  { _id: 524d5f6e1576f8a0f35fca8e, a: 'hey', b: 'you' } ]
于 2013-10-03T12:18:09.103 に答える