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

Mongodbの行から列への集約

    これは非常にトリッキーですが、必要なものを手に入れることができます:-)

    集約パイプラインの上部に$matchを追加してください

    db.collection.aggregate([{
                $project : {
                    _id : 0,
                    "Account" : 1,
                    car : {
                        $cond : [{
                                $eq : ["$Element_Fieldname", "cars"]
                            }, "$Element_Value", null]
                    },
                    boats : {
                        $cond : [{
                                $eq : ["$Element_Fieldname", "boats"]
                            }, "$Element_Value", null]
                    },
                }
            },
            {
                $group : {
                    _id : "$Account",
                    carData : {
                        $addToSet : "$car"
                    },
                    boatsData : {
                        $addToSet : "$boats"
                    }
                }
            }, {
                $unwind : "$carData"
            }, {
                $match : {
                    carData : {
                        $ne : null
                    }
                }
            }, {
                $unwind : "$boatsData"
            }, {
                $match : {
                    boatsData : {
                        $ne : null
                    }
                }
            },
        ])
    

    と結果

    {
        "_id" : 12345,
        "carData" : true,
        "boatsData" : false
    }
    


    1. Redis-期限切れのインデックスは削除されません

    2. グループを作成し、birtの配列リストからデータを分析します

    3. 公式C#ドライバーを使用してMongoDBBsonドキュメントをシリアル化/逆シリアル化します

    4. Redisハッシュ用のMGETアナログはありますか?