sql >> Database >  >> NoSQL >> MongoDB

mongodb $unwind voor niet-ideaal genest document

  • $unwind deconstrueer de rondes-array
  • $project om verplichte velden weer te geven
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"
    }
  }
])

Speeltuin

Een meer dynamische benadering,

  • $mergeObjects om verplichte velden van root en round_values samen te voegen voorwerp
  • $replaceRoot om bovenstaand samengevoegd object te vervangen door root
db.collection.aggregate([
  { $unwind: "$rounds" },
  {
    $replaceRoot: {
      newRoot: {
        $mergeObjects: [
          {
            GameID: "$GameID",
            ComputerName: "$ComputerName"
          },
          "$rounds.round_values"
        ]
      }
    }
  }
])

Speeltuin




  1. prestatieprobleem op Spring Data Mongodb

  2. Redis/Jedis - Verwijderen op patroon?

  3. MongoDB-aggregatieprojecttekenreeks naar ObjectId

  4. Mongoose retourneert gegevens in _doc object