ho oggetti come questoMongoDB errore dell'operatore posizionale
{
"_id" : ObjectId("5742be02289512cf98bf63e3"),
"name" : "test1",
"name" : "test1",
"attributes" : [
{
"name" : "x",
"color" : "0xd79c9c",
"_id" : ObjectId("5742be02289512cf98bf63e8")
},
{
"name" : "y",
"color" : "0xd79c9c",
"_id" : ObjectId("5742be02289512cf98bf63e7")
},
{
"name" : "z",
"color" : "0xd79c9c",
"_id" : ObjectId("5742be02289512cf98bf63e6")
}
],
"__v" : 6
}
E voglio aggiornare tutti i documenti, e impostare per ogni attributo nuovo campo. Quindi voglio eseguire una singola query per aggiornare tutti i documenti contemporaneamente. Penso che questa query lo farà
db.spaces.update({}, { $set: { "attributes.0.weight": 2 } }, {multi: true})
Ma quando eseguo questa query, ottengo un errore.
"codice": 16837,
"errmsg": "L'operatore posizionale non ha trovato il match necessaria dalla query di aggiornamento non espanso:. Attributi $ peso.".
Così ho non capisco perché Si prega di aiutare
È necessario includere il campo dell'array come parte del documento di query per poter utilizzare l'operatore posizionale. – chridam
@chridam, come posso farlo? – Gor