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

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

Трябва да използвате $ positional оператор за актуализиране на елемент на масив и с multi: true опция можете да актуализирате няколко документа с едно и също съвпадение

db.collection.update(
  { 'items': { '$elemMatch': { 'itemName': 'Name 1' }}},
  { '$set': { 'items.$.itemName': 'New Name' }},
  { 'multi': true }
)

и с mongodb 3.6 arrayFilters

db.collection.update(
  { 'items': { '$elemMatch': { 'itemName': 'Name 1' }}},
  { '$set': { 'items.$[item].itemName': 'New Name' }},
  { 'arrayFilter': [{ 'item.itemName': 'Name 1' }], 'multi': true }
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $push

  2. $project:Възможно ли е достъп до свойство на резултат от израз само на един етап?

  3. Групов резултат по 15 минути времеви интервал в MongoDb

  4. Hadoop Map/Reduce срещу вградена Map/Reduce

  5. Upsert Array Elements, съответстващи на критериите в документ на MongoDB?