sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb $unwind for ikke-ideelt indlejret dokument

  • $unwind dekonstruer runder-arrayet
  • $project for at vise obligatoriske felter
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"
    }
  }
])

Legeplads

En mere dynamisk tilgang,

  • $mergeObjects at flette obligatoriske felter fra root og round_values objekt
  • $replaceRoot for at erstatte ovenstående flettede objekt til root
db.collection.aggregate([
  { $unwind: "$rounds" },
  {
    $replaceRoot: {
      newRoot: {
        $mergeObjects: [
          {
            GameID: "$GameID",
            ComputerName: "$ComputerName"
          },
          "$rounds.round_values"
        ]
      }
    }
  }
])

Legeplads




  1. Mongo Aggregation

  2. MongoDB virker ikke. FEJL:dbpath (/data/db) eksisterer ikke.

  3. Hvordan bruger man variabel mongoose-forespørgsel?

  4. Opgrader til Ubuntu 15.04 fra 14.10 breaks mongo - hvordan løser man det?