Database Reference
In-Depth Information
Sie können mehr machen, als nur einen Wert zu
$set
zen.
$inc
(eine Zahl in-
krementieren) ist auch recht nützlich. Lassen Sie uns Portlands Einwohner-
zahl um 1000 erhöhen.
db.towns.update(
{
_
id : ObjectId(
"4d0ada87bb30773266f39fe5"
)},
{ $inc : { population : 1000} }
)
Es gibt viele Direktiven wie diese, etwa den Positionsoperator
$
für Arrays.
Neue Operationen werden häufig hinzugefügt und in der Online-Dokumen-
tation ergänzt. Hier die wichtigsten Direktiven:
Befehl
Beschreibung
$set
Setzt das angegebene Feld auf den angegebenen Wert
$unset
Entfernt das Feld
$inc
Addiert den angegebenen Wert zum angegebenen Feld hinzu
$pop
Entfernt das letzte (oder erste) Element aus einem Array
$push
Fügt einen Wert in ein Array ein
$pushAll
Fügt alle Werte in ein Array ein
$addToSet Wie push, aber ohne doppelte Werte
$pull
Entfernt passende Werte aus einem Array
$pullAll
Entfernt alle passenden Wert aus einem Array
Referenzen
Wie bereits erwähnt, wurde Mongo nicht für Joins entwickelt. Aufgrund sei-
ner verteilten Natur sind Joins recht ineffiziente Operationen. Dennoch ist es
für Dokumente manchmal nützlich, sich gegenseitig zu referenzieren. In die-
sem Fall empfiehlt das Mongo-Entwicklungsteam ein Konstrukt wie
{ $ref :
"collection
_
name", $id : "reference
_
id" }
. Zum Beispiel können wir un-
sere
towns
-Collection um eine Referenz auf ein Dokument in
countries
er-
gänzen.
db.towns.update(
{
_
id : ObjectId(
"4d0ada87bb30773266f39fe5"
)},
{ $set : { country: { $ref:
"countries"
, $id:
"us"
}}}
)
Nun können Sie Portland aus der
towns
-Collection abrufen.