J'ai une collection qui a une structure de document comme suit :

Mongo PlayGround

{
    "basicDetails": {
        "id": "1",
        "name": "xyz"
    },
    "tasks": [{
        "id": "10",
        "name": "task10",
        "subtasks": [{
            "id": "120",
            "name": "subTask120",
            "description": "ABC"
        }]
    }]
}

Comme vous pouvez le voir, chaque document a un objet basicDetails et un tableau de tâches. Chaque tâche contient ses propres propriétés et un tableau de sous-tâches.

Je souhaite mettre à jour la description des sous-tâches de ABC à XYZ

where root level id is 1, task'id is 10 and subTasks.id =120

Comment dois-je procéder?

Je sais que je pourrais trouver le bon document via:

db.collection.find({
  "basicDetails.id": "1",
  "tasks": {
    "$elemMatch": {
      "id": "10",
      "subtasks": {
        "$elemMatch": {
          "id": "120"
        }
      }
    }
  }
})

Mais comment le mettre à jour ? Je veux mettre à jour une seule propriété d'une seule sous-tâche, c'est-à-dire la description

0
SamuraiJack 11 nov. 2020 à 15:45

1 réponse

Meilleure réponse