Ich habe eine Node/Express-API mit Mongoose, wo ich Filialdokumente in mehreren Dokumenten zu aktualisieren versuchen.Aktualisieren mehrerer Dokumente mit Mungo funktioniert nicht
Im Wesentlichen habe ich einen Benutzer mit einem Profil, das mehrere Telefonnummern hat, die sie mit einem anderen Kontakt teilen können.
Jeder Kontakt hat einen Abschnitt profile.contacts [], der den Abschnitt profile.contacts.phones [] enthält.
Wenn der Hauptbenutzer, der seine Telefonnummer mit anderen Benutzern teilt, seine/ihre Nummer ändert, möchte ich den Abschnitt profile.contacts.phones [] in allen Dokumenten aktualisieren, in denen die _id dieser Telefonnummer übereinstimmt.
Hier ist mein Code:
Profile.update({'contacts.phones._id':req.body._id}, {
Profile.contacts.phones.phone_number:req,body.phone_number,
Profile.contacts.phones.phone_type:req.body.phone_type
}, {multi:true}, function(err, result){
if(err)
res.send(err)
res.json(result);
})
Hier ist ein Beispiel "Profil" Dokument:
{
"_id" : ObjectId("59c09dca981de33d180df943"),
"last_name" : "Sam",
"first_name" : "Sam",
"owner_id" : "59c09dca981de33d180df940",
"contacts" : [
{
"first_name" : "Joe",
"last_name" : "Public",
"_id" : ObjectId("59c09dca981de33d180df944"),
"phones" : [
{
"phone_number" : "2067155803",
"phone_type" : "home",
"_id" : ObjectId("59bca0b55481370985cac29a")
}
]
}
]
"__v" : 0
}
Nach dem, was ich in der Dokumentation zu sehen, sollte diese Arbeit ...
Danke für jeden Einblick !!
Danke Steve, aber ich erhalte die folgende Fehlermeldung: "das Teil nicht (Kontakte von contacts.phones.phone_type) das Element zu durchqueren { Kontakte nutzen: [{ first_name:" Joe“, last_name : "Public", _id: ObjectId ('59c09dca981de33d180df944') Telefone: [ { phone_number: "2067155803", PHONE_TYPE: "Heimat", _id: ObjectId ('59bca0b55481370985cac29a') } ] } ] } – cnak2
Ich denke, das Problem liegt bei den verschachtelten Arrays: ** Kontakte ** und dann ** Telefone **. –
Danke für deine Hilfe Steve. Ich habe die Kontakte in ein separates Dokument aufgeteilt, wie Sie es vorgeschlagen haben. – cnak2