MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongodb $unwind за неидеален вложен документ

  • $unwind деконструирайте кръговия масив
  • $project за показване на задължителните полета
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"
    }
  }
])

Playground

По-динамичен подход,

  • $mergeObjects за обединяване на задължителни полета от root и round_values обект
  • $replaceRoot за замяна на обединения по-горе обект с root
db.collection.aggregate([
  { $unwind: "$rounds" },
  {
    $replaceRoot: {
      newRoot: {
        $mergeObjects: [
          {
            GameID: "$GameID",
            ComputerName: "$ComputerName"
          },
          "$rounds.round_values"
        ]
      }
    }
  }
])

Playground




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Итерация през масив от низове, извлечени от MongoDB

  2. Различни индекси на различни членове на набор от реплики

  3. Избутване на елемент към масив в mongoose

  4. Mongoid / Mongodb и заявка за вградени документи

  5. C# MongoDB сложна сериализация на класове