Database Reference
In-Depth Information
Die Funktion update(kriterium,operation) verlangt zwei Parameter. Der ers-
te ist die Kriteriums-Query - das gleiche Objekt, das Sie auch an find() über-
geben. Der zweite Parameter ist entweder das Objekt, dessen Felder das/die
passende(n) Dokument(e) ersetzt, oder eine Modifikator-Operation. In unse-
rem Fall $set zt der Modifikator das Feld state auf den String OR (egon).
db.towns.update(
{ _ id : ObjectId( "4d0ada87bb30773266f39fe5" )},
{ $set : { "state" : "OR" }}
);
Sie fragen sich wahrscheinlich, warum eine $set -Operation überhaupt not-
wendig ist. Mongo denkt nicht in Attributen. Es hat nur aus Optimierungs-
gründen eine interne, implizite Vorstellung von Attributen. Doch am Inter-
face selbst ist nichts Attribut -artiges. Mongo ist dokumentenorientiert .Sie
werden nur selten Folgendes machen wollen (beachten Sie das Fehlen der
$set -Operation):
db.towns.update(
{ _ id : ObjectId( "4d0ada87bb30773266f39fe5" )},
{ state : "OR" }
);
Damit würden Sie das gesamte Dokument durch das übergebene Dokument
ersetzen ( { state : "OR" } ). Da Sie keinen Befehl wie $set angegeben haben,
geht Mongo davon aus, dass Sie es einfach ersetzen wollen, also Vorsicht.
Wir können den Erfolg des Updates überprüfen, indem wir das Dokument
einfach abrufen (beachten Sie, dass wir findOne verwenden, um nur einen
Treffer abzurufen).
db.towns.findOne({ _ id : ObjectId( "4d0ada87bb30773266f39fe5" )})
{
" _ id" : ObjectId( "4d0ada87bb30773266f39fe5" ),
"famous _ for" :[
"beer" ,
"food"
],
"last _ census" : "Thu Sep 20 2007 00:00:00 GMT-0700 (PDT)" ,
"mayor" :{
"name" : "Sam Adams" ,
"party" : "D"
},
"name" : "Portland" ,
"population" : 582000,
"state" : "OR"
}
Search WWH ::




Custom Search