Je veux juste savoir mettre à jour tous les documents incorporés. Voici mon document:Comment mettre à jour plusieurs documents imbriqués/incorporés mongodb?
{
"_id":1,
"chat":[
{ "sender":"bar",
"message":"Hi",
"status":"pending"
},
{ "sender":"bar",
"message":"How are you?",
"status":"pending"
}
}
{
"_id":2,
"chat":[
{ "sender":"foo",
"message":"Hello",
"status":"pending"
},
{ "sender":"foo",
"message":"Are you okay?",
"status":"pending"
},
{ "sender":"someone",
"message":"Where are you?",
"status":"pending"
}
}
J'ai essayé mais cela n'a pas pu fonctionner simultanément, cela fonctionne simplement pour changer le premier document incorporé. Voici mon code:
db.chat.update({"_id":"2", "chat.sender":"foo"},{$set{"chat.$.status":"sent"}},{multi:true})
Je veux document est mis à jour pour être comme ça et il devrait avoir changé en 1 processus en même temps:
{
"_id":1,
"chat":[
{ "sender":"bar",
"message":"Hi",
"status":"pending"
},
{ "sender":"bar",
"message":"How are you?",
"status":"pending"
}
}
{
"_id":2,
"chat":[
{ "sender":"foo",
"message":"Hello",
"status":"sent"
},
{ "sender":"foo",
"message":"Are you okay?",
"status":"sent"
},
{ "sender":"someone",
"message":"Where are you?",
"status":"pending"
}
}
Si vous savez comment résoudre ce problème, s'il vous plaît aidez-moi ...
Omg cela fonctionne monsieur, mais comment implémenter en PHP? db-> chat-> find (array ("_ id" => "2")) et ensuite? –
De rien. Désolé mais je ne peux pas vous aider à propos de PHP. Il doit y avoir un moyen d'utiliser cette requête dans la bibliothèque mongodb php. –
@ Hasan trouver la condition devrait être: {"_id": 2}, faites éditer vos ans. – radhakrishnan