sql >> データベース >  >> NoSQL >> MongoDB

配列ソースを使用してmongodbの配列サブセットを取得します

    $filterするだけです 配列を保持し、 valueが存在するサブドキュメントのみを保持します 入力配列のサブセットです。 に注意してください これは、elementが埋め込みフィールドvalueである1つの要素配列です。 。

    let fruits = ["apple","banana","coconut"];
    
    db.collection.aggregate([
        { "$project": { 
            "Element": { 
                "$filter": { 
                    "input": "$Element", 
                    "as": "el", 
                    "cond": { 
                        "$setIsSubset": [ [ "$$el.Value" ], fruits ] 
                     }
                }
            }
        }}
    ])
    

    MongoDB 3.4 *以降では、$inを使用できます $projectの演算子 ステージ。

    db.collection.aggregate([
        { "$project": { 
            "Element": { 
                "$filter": { 
                    "input": "$Element", 
                    "as": "el", 
                    "cond": { 
                        "$in": [ "$$el.Value", fruits ] 
                     }
                }
            }
        }}
    ])
    

    *この記事の執筆時点でのMongoDBの未リリースバージョン




    1. いつ実際に使用するのか、Redis lua?

    2. redisリストの変更をリッスンする

    3. MongoDBの$unwind演算子とは何ですか?

    4. Apache HBase Medium Object Storage(MOB)コンパクションパーティションポリシーの紹介