Na początku nie miałem, dlaczego pytanie ma bounty (myślałem, że pytanie ma ładny odpowiedź i nie ma nic dodać), ale potem zauważyłem, że odpowiedź, która została przyjęta i wznowiona 15 razy, była w rzeczywistości błędna!
Tak, musisz użyć $unset operator, ale to ustawienie spowoduje usunięcie słowa klucz, który nie istnieje dla dokumentu dla kolekcji. Więc w zasadzie nic nie zrobi.
Musisz więc powiedzieć mongo, aby zajrzał do tagów dokumentu, a następnie do słów: dot notation. Tak więc prawidłowe zapytanie jest.
db.example.update(
{},
{ $unset: {'tags.words':1}},
false, true
)
Właśnie przez wzgląd na ukończeniu będę odnosić się do another way of doing it, która jest znacznie gorzej, ale w ten sposób można zmienić pole z dowolnego kodu niestandardowego (nawet na podstawie innego pola z tego dokumentu).
Czy wiesz, dlaczego fałszywe, prawdziwe dzieła? –
Nowsze wersje obsługują bardziej czytelny format: 'db.example.update ({}, {$ unset: {words: 1}}, {multi: true})' –
db.example.update ({}, {$ unset : {field: 1, multi: true}}) Zapytanie Nicka nie działało dla mnie. –