sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb $unwind för icke-ideal kapslade dokument

  • $unwind dekonstruera arrayen rundor
  • $project för att visa obligatoriska fält
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"
    }
  }
])

Lekplats

Ett mer dynamiskt tillvägagångssätt,

  • $mergeObjects för att slå samman obligatoriska fält från root och round_values objekt
  • $replaceRoot för att ersätta ovanstående sammanslagna objekt till root
db.collection.aggregate([
  { $unwind: "$rounds" },
  {
    $replaceRoot: {
      newRoot: {
        $mergeObjects: [
          {
            GameID: "$GameID",
            ComputerName: "$ComputerName"
          },
          "$rounds.round_values"
        ]
      }
    }
  }
])

Lekplats




  1. gör om HLL för många falska positiva

  2. Hur hämtar och skriver jag ut pymongo.cursor.Cursor-objekt?

  3. Fel vid anslutning till Atlas Free Cluster (MongoDB)

  4. 3 sätt att välja raden med minimivärdet i SQL