Database Reference
In-Depth Information
var portland = db.towns.findOne({ _ id : ObjectId( "4d0ada87bb30773266f39fe5" )})
Um dann das Land abzurufen, können Sie die countries -Collection mit der
gespeicherten $id abfragen.
db.countries.findOne({ _ id: portland.country.$id })
Und mit JavaScript können Sie im town-Dokument nach dem Namen der
Collection fragen, die in der Referenz gespeichert ist.
db[ portland.country.$ref ].findOne({ _ id: portland.country.$id })
Die beiden letzten Queries sind gleich, die zweite ist nur etwas mehr daten-
gesteuert.
Vorsicht bei der Schreibweise
Mongo ist bei Schreibfehlern nicht besonders nachsichtig. Wenn Sie dieses Problem
noch nicht hatten, werden Sie ihm irgendwann begegnen, also seien Sie gewarnt.
Man kann Parallelen zwischen statischen und dynamischen Programmiersprachen
ziehen. Bei statischen Sprachen definieren Sie vorab, während dynamische Spra-
chen Werte akzeptieren, die Sie nicht gewollt haben, selbst so unsinnige Dinge wie
person _ name = 5 .
Dokumente sind schemafrei, d. h., Mongo kann nicht wissen, ob Sie pipulation zu
einer Stadt hinzufügen wollten oder ob Sie tatsächlich den lust _ census abfragen
wollen. Es wird diese Felder ungefragt einfügen bzw. keine Ergebnisse zurückliefern.
Flexibilität hat ihren Preis. Caveat emptor .
Löschen
Dokumente aus einer Collection zu löschen, ist einfach. Ersetzen Sie die
find() -Funktion einfach durch einen Aufruf von remove() , und alle passen-
den Kriterien werden entfernt. Es ist wichtig zu beachten, dass das gesamte
Dokument entfernt wird und nicht nur ein passendes Element oder Subdo-
kument.
Wir empfehlen, zuerst find() auszuführen, um die Kriterien zu verifizieren,
bevor Sie remove ausführen. Mongo lässt sich nicht zweimal bitten, bevor
es die Operation ausführt. Lassen Sie uns alle Länder löschen, die Bacon
exportieren, der nicht lecker ist.
 
Search WWH ::




Custom Search