sql >> Database teknologi >  >> NoSQL >> MongoDB

Opdater indlejrede array-objekter baseret på en egenskab i MongoDB

Du skal bruge $ positional operator for at opdatere et array-element og med multi: true mulighed du kan opdatere flere dokumenter med det samme match

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

og med 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 Udgiv/abonner

  2. Forespørgsel efter et felt i et objekt i array med Mongo?

  3. MongoDB Security - Ressourcer til at holde NoSQL DB'er sikre

  4. MongoDb:find dybt indlejret objekt med $lookup