sql >> Database >  >> NoSQL >> MongoDB

Update geneste array-objecten op basis van een eigenschap in MongoDB

U moet $ positional . gebruiken operator om een ​​array-element bij te werken en met multi: true optie u kunt meerdere documenten bijwerken met dezelfde overeenkomst

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

en met de 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. Overweeg de bovenstaande items opnieuw te bekijken of een bean van het type 'org.springframework.data.redis.core.RedisTemplate' in uw configuratie te definiëren

  2. Google Cloud Platform - Kan geen verbinding maken met mongodb

  3. Dubbele records verwijderen met MapReduc

  4. Hoe u dubbele sleutelfouten veilig kunt negeren met insert_many