Dodałem atrybut MiddleName do mojego obiektu Customer. Klient to prosta instancja Object(). Chcę usunąć ten atrybut z mojego obiektu. Jak mogę to zrobić? Korzystam z interaktywnej konsoli MongoDb.Jak usunąć atrybut z obiektu MongoDb?
Odpowiedz
Należy użyć $ unset modyfikator podczas aktualizacji:
// db.collection.update (kryteria, objNew, upsert, Multi) -> dla odniesienia
Aby usunąć:
db.collection.update(
{
"properties.service" : {
$exists : true
}
},
{
$unset : {
"properties.service" : 1
}
},
false,
true
);
Aby sprawdzić, zostały one usunięte można użyć:
db.collection.find(
{
"properties.service" : {
$exists : true
}
}
).count(true);
Pamiętaj, aby użyć opcji multi jako wartości true, jeśli chcesz aktualizować wiele rekordów. W moim przypadku chciałem usunąć atrybut properties.service ze wszystkich rekordów w tej kolekcji.
Uruchomiłem to polecenie na db z 20 milionów rekordów. Minęło już 14 minut. Usuwanie jednego pola. –
Tak, nie jestem zaskoczony. Czy możesz zaproponować lepszy sposób na bazę danych zaprojektowaną tak, aby była wolna od schematów? –
Podpis argumentu db.collection.update został zmieniony w 2.2: http://docs.mongodb.org/manual/reference/method/db.collection.update/ – spazm
Znaleziono odpowiedź => usuń klienta.MiddleName – johndoe