Ich habe die folgende Struktur in MongoDB 2.6:Wie zieht Wert von Array in Mongo tief verschachtelten Dokumenten
db.processes: {
_id: ObjectId("572756344031b585d03dca57"),
activities: [
{
procedures: [
{
implications_ids: [
ObjectId("50871f11d52ef600020128a2"), ObjectId("50871f17d52ef60002012d03")
]
}
]
}
]
}
Ich mag ObjectId("50871f11d52ef600020128a2")
implications_ids
aus allen Arrays den Wert entfernen. Ich schrieb den Befehl:
`db.processes.update({},
{ $pull: { activities: { procedures: { implications_ids: ObjectId("50871f11d52ef600020128a2") } } } },
{ multi: true, safe: true }
)`
Der Befehl beendet Ausführung, aber nicht aktualisiert keine Dokumente:
WriteResult({ "nMatched" : 199, "nUpserted" : 0, "nModified" : 0 })
Was mache ich falsch?
Interessant, als ich das Update mit Punktnotation versuchte, wie Sie vorgeschlagen, bekam ich die Nachricht: 'Kann den Teil nicht verwenden (Aktivitäten von activities.procedures.implications_ids), um das Element zu durchlaufen ({activities: [{_id: ObjectId(), ...}] –
Hinter Ihrer INSERT-Anweisung und ich könnte überprüfen – Koitoer
Die INSERT-Anweisung, die meine Db-Struktur korrekt widerspiegelt, ist: db.processes.insert ( {Aktivitäten: [ {Verfahren: [ {implications_ids: [ObjectId ("50871f11d52ef600020128a2"), ObjectId ("50871f17d52ef60002012d03")]} ]} ]} ) –