MongoDB: Usuwanie pola z WSZYSTKICH poddokumentów w polu tablicy
Mam tysiące dokumentów w tym formacie:
{
"_id" : ObjectId("51e98d196b01c2085c72d731"),
"messages" : [
{
"_id" : ObjectId("520167056b01c20bb9eee987"),
"id" : ObjectId("520167056b01c20bb9eee987"),
},
{
"_id" : ObjectId("520167056b01c20bb9eee988"),
"id" : ObjectId("520167056b01c20bb9eee988"),
},
{
"_id" : ObjectId("520167056b01c20bb9eee989"),
"id" : ObjectId("520167056b01c20bb9eee989"),
}
],
}
Muszę usunąć duplikat pola „id”. To właśnie próbowałem:
db.forum_threads.update({}, {$unset: {"messages.$.id": 1}}, {multi: true});
Oto błąd, który otrzymuję:
Cannot apply the positional operator without a corresponding query field containing an array.