0

フィールドだけでなく、配列フィールド内のオブジェクトもフィルタリングしようとしています。以下の例を参照すると、セグメント フィールドの場合、クライアントにセグメント配列内のオブジェクトのみを取得させたいと考えています。isReleased === true

スキーマの例

{
    _id:      123456,
    segments: [
        {
            name: 'Type A',
            isReleased: false,
        },
        {
            name: 'Type B',
            isReleased: false,
        },
        {
            name: 'Type C',
            isReleased: true,
        }
    ],
}

基本的にはクライアントに受け取ってもらいたいのですが

{
    _id:      123456,
    segments: [
        {
            name: 'Type C',
            isReleased: true,
        }
    ],
}
4

1 に答える 1

0

$elemMatch演算子を使用できます。クエリは次のようになります。

Schema.find({segments: {$elemMatch: {isReleased: true}}},...)

詳細については、リンクの例を確認できます。

于 2016-10-29T18:29:30.873 に答える