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

MongoDB aktualizuje pole ve vnořeném poli

Tento problém byl vyřešen. Funkce aktualizace polí uvnitř vnořeného pole objektů je dostupná ve verzích MongoDB 3.6+. Zde se podívejte na poziční operátory (všechny a s identifikátorem).

//Update all docs in collection matching photo name "play" to "play photo"
db.collectioname.update(
    {},
    { $set: { "albums.$[].photos.$[photo_field].name": "play photo" } },
    { arrayFilters: [  {"photo_field.name": "play"} ], multi: true}
);

//Update this specific doc given in question matching photo name "play" to "play photo"
db.collectioname.update(
    {"_id" : ObjectId("4f41a5c7c32810e404000000")},
    { $set: { "albums.$[].photos.$[photo_field].name": "play photo" } },
    { arrayFilters: [  {"photo_field.name": "play"} ]}
);

Toto je pro pomoc lidem, kteří sem přicházejí po MongoDB 3.6



  1. Replikace operační databáze Cloudera v kostce

  2. Jak nakonfigurovat SELinux pro sady replik MongoDB

  3. Jak nasadit Percona Server pro MongoDB pro vysokou dostupnost

  4. Jak zálohovat a obnovit ClusterControl