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

Operace aktualizace Mongodb uvnitř dílčího pole

Nechcete použít $set zde, ale $pull (viz dokumenty ), a dokud můžete použijte $elemMatch pro další upřesnění vašeho dotazu nemusíte.

Následující by stáhlo všechna oznámení o přidání přátel pomocí {"sender": "safari"} z podpole dokumentů odpovídajících {"username": "amitverma"}

db.yourcollection.update({"username": "amitverma"}, { 
  $pull: {"notifications.notifications_add_friend": {"sender": "safari"}}
})

Pokud jde o váš komentář, pokud byste chtěli aktualizovat konkrétní prvek, byli byste použijte $set v kombinaci s $elemMatch a poziční operátor $ . Například něco jako:

db.yourcollection.update({
  "username": "amitverma", 
  "notifications.notifications_add_friend": {
    $elemMatch: {"sender": "safari"}
  }
}, {
  $set: {
    "notifications.notifications_add_friend.$.isUnread": false
  }
})



  1. MongoDB-as-a-Service v Kanadě

  2. Chyba ServerSelectionTimeoutError při připojování k aws pomocí pymongo

  3. Problém s připojením docker compose spring boot redis

  4. Databáze přes 2 GB v MongoDB