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

Mongodb-$group内の$group('key'による)

    ネストされた$condを追加できます キー123または456をフィルタリングします。次に、最後の$project ステージを使用してアレイを構築できます。

    db.events.aggregate([
        {"$group":
            {   "_id":"$KLLS",
                "Processus":{"$push":{"$cond":[{"$eq":["$type","Processus"]},'$$ROOT',false]}},
                "Work123":
                    {"$push":
                        {"$cond":
                            [
                                {"$eq":["$type","Work"]},
                                {"$cond":
                                    [
                                        {"$eq":["$key","123"]},
                                        '$$ROOT',
                                        false
                                    ]
                                },
                                false
                            ]
                        }
                    },
                "Work456":
                    {"$push":
                        {"$cond":
                            [
                                {"$eq":["$type","Work"]},
                                {"$cond":
                                    [
                                        {"$eq":["$key","456"]},
                                        '$$ROOT',
                                        false
                                    ]
                                },
                                false
                            ]
                        }
                    },
                "Viewing":{"$push":{"$cond":[{"$eq":["$type","Viewing"]},'$$ROOT',false]}}
            }
        },
        {"$project": { "_id":0, "KLLS":"$_id", "Processus":{"$setDifference":["$Processus",[false]]},
            "123":{"$setDifference":["$Work123",[false]]},
            "456":{"$setDifference":["$Work456",[false]]},
            "Viewing":{"$setDifference":["$Viewing",[false]]}
            }
        },
        {"$project": { "KLLS":1, "Processus":1, "Work" : [{"123" : "$123"}, {"456" : "$456"}],"Viewing":1}}
    ])
    



    1. アップサートによるMongodbの更新が失敗する

    2. mongodbクエリで配列をフィルタリングする方法

    3. 異なる値でmongoDB内の多くのドキュメントを更新します

    4. MongoDBの異なるクエリプランが異なるnReturned値を表示するのはなぜですか?