MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongodb - $grupa wewnątrz $grupy (przez „klucz”)

Możesz dodać zagnieżdżony $cond do filtrowania kluczy 123 lub 456. Następnie końcowy $project stage może być użyty do skonstruowania tablicy.

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak uruchomić usługę mongodb w systemie Mac OS X?

  2. Zapytanie o inny model w metodzie instancji innego modelu

  3. Brakujące pole w wynikach zapytania Mongo/Mongoose

  4. Jak wstawić wiele elementów jednocześnie do kolekcji MongoDB

  5. Jak przechowywać wartości sesji w Node.js i mongodb?