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

MongoDB結果クエリをフラット化することは可能ですか?

    $projectを使用できます &$unwind$group 集計 結果を要件に近づけるためのフレームワーク。

    > db.countries.aggregate({$project:{a:'$data.country.neighbor.name'}},
                             {$unwind:'$a'},
                             {$unwind:'$a'},
                             {$group:{_id:'a',res:{$addToSet:'$a'}}})
      {
        "result" : [
            {
                "_id" : "a",
                "res" : [
                    "Colombia",
                    "Malaysia",
                    "Switzerland",
                    "Costa Rica",
                    "Austria"
                ]
            }
        ],
        "ok" : 1
    }
    

    $unwind 名前配列が深くネストされているため、2回使用されます。そしてそれはneighborの場合にのみ機能します 属性は配列です。あなたの例では、1つの隣接フィールド(マレーシア)は配列ではありません



    1. Elasticsearchでmongoコネクタを使用してカスタムマッピングを行う方法

    2. WSLへのMongoDBのインストール

    3. MongoDB $ pop

    4. $ dateFromStringを使用して配列内の日付を変換するにはどうすればよいですか?