sql >> Databáze >  >> NoSQL >> MongoDB

Souhrnný/projektový dílčí dokument jako dokument nejvyšší úrovně v mongo

Pokud máte v dílčím dokumentu mnoho a mnoho polí a občas se aktualizuje o nová pole, pak projekce není schůdnou možností. Naštěstí od verze 3.4 má MongoDB nového operátora s názvem $replaceRoot .

Jediné, co musíte udělat, je přidat novou fázi na konec vašeho kanálu.

db.getCollection('sample').aggregate([
    {
        $replaceRoot: {newRoot: "$command"}
    },
    {
        $project: {score: 0 } //exclude score field
    }
])

Tím získáte požadovaný výstup.

Upozorňujeme, že v případě agregace (zejména po $group stage) 'příkazový' dokument může být pole a může obsahovat více dokumentů. V tomto případě musíte $unwind pole jako první, aby bylo možné použít $replaceRoot .



  1. Jak odinstalovat mongodb z Windows

  2. $sum ze skupiny dokumentů a vnořených dokumentů od $author (MongoDB)

  3. Šablona MeteorJS nezobrazuje data, nezobrazuje se

  4. Spark neprovádí úkoly