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

MongoDBコレクションのオブジェクト配列でクエリされた複数の要素を取得します

    $redactを使用できます 演算子:

    db.buildings.aggregate([
    {$match:{"zone.AHU":{$exists:true}}},
    {$redact:{
      $cond:{
           if:{$or:[{$eq:["$AHU","C"]},{$not: "$AHU"}]},
           then:"$$DESCEND",
           else:"$$PRUNE"   
         }  
       }}  
    ]) 
    

    {$not: "$AHU"}を覚えておいてください 最上位の要素が除外されないように含めることが重要です。追加しない場合、最上位の要素がスキップされるため、埋め込まれたドキュメント全体がスキップされます。

    出力:

    {
    "_id" : ObjectId("5aba4460a042dc4a2fdf26cd"),
    "name" : "Test Street",
    "coordinate" : [ 
        12, 
        31
    ],
    "yearlyEnergyCost" : 1444,
    "zone" : [ 
        {
            "name" : "AHU-C-Z2",
            "_id" : ObjectId("5aba4460a042dc4a2fdf26ce"),
            "AHU" : "C",
            "precooling" : [],
            "subZone" : []
        }, 
        {
            "name" : "AHU-C-Z1",
            "AHU" : "C",
            "_id" : ObjectId("5ac09c898249affa03506eff"),
            "precooling" : [],
            "subZone" : []
        }, 
        {
            "name" : "AHU-C-Z3",
            "AHU" : "C",
            "_id" : ObjectId("5ac09c898249affa03506efe"),
            "precooling" : [],
            "subZone" : []
        }
    ],
    "__v" : 2
    }
    



    1. マングースの別のスキーマを参照する

    2. mongodbの動的で一意でないフィールドでクエリと並べ替えを行う場合の遠隔ページネーション

    3. DockerコンテナからRedisサーバーに接続できません

    4. Redis/プレフィックス付きのredisからすべてのキーと値を取得