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

mongodb $unwind pro neideální vnořený dokument

  • $unwind dekonstruujte pole rounds
  • $project pro zobrazení povinných polí
db.collection.aggregate([
  { $unwind: "$rounds" },
  {
    $project: {
      GameID: 1,
      ComputerName: 1,
      max_player_pot: "$rounds.round_values.max_player_pot",
      pot_multiple: "$rounds.round_values.pot_multiple"
    }
  }
])

Hřiště

Dynamičtější přístup,

  • $mergeObjects ke sloučení povinných polí z kořene a round_values objekt
  • $replaceRoot nahradit výše sloučený objekt kořenem
db.collection.aggregate([
  { $unwind: "$rounds" },
  {
    $replaceRoot: {
      newRoot: {
        $mergeObjects: [
          {
            GameID: "$GameID",
            ComputerName: "$ComputerName"
          },
          "$rounds.round_values"
        ]
      }
    }
  }
])

Hřiště




  1. Existuje způsob, jak použít objekty dotazů MongoDB k filtrování běžných polí JavaScriptu?

  2. Jak se generují ObjectId MongoDB?

  3. Rekurzivní dotaz Mongodb

  4. MongoDb Post formátování agregace $lookup s omezenými daty