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

Полета за актуализиране на MongoDB във вложен масив

Този проблем е решен. Функцията за актуализиране на полета вътре в вложен масив от обекти е налична във версии на MongoDB 3.6+. Вижте позиционните оператори (всички и с идентификатор) тук.

//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"} ]}
);

Това е за помощ на хората, които идват тук след MongoDB 3.6



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Използвайте фалшив сървър MongoDB за единичен тест

  2. Персонализирана десериализация

  3. Как да намерите произволен запис в Mongoose

  4. Регистриране на одит за MongoDB

  5. Как мога да се свържа с MongoDB Atlas чрез Robomongo?