Database Reference
In-Depth Information
db.towns.find(
{ name : /^P/, population : { $lt : 10000 } },
{ name : 1, population : 1 }
)
{ "name" : "Punxsutawney" , "population" : 6200 }
Bedingungsoperatoren haben bei Mongo das Format feld : { $op : wert } ,
wobei $op eine Operation wie $ne (nicht gleich) ist. Sie könnten sich eine etwas
kompaktere Syntax wie feld < wert wünschen, doch hier handelt es sich um
JavaScript-Code, nicht um eine domänenspezifische Query-Sprache, d. h.,
die Queries müssen den JavaScript-Syntaxregeln entsprechen. (Später zei-
gen wir, wie man in bestimmten Fällen eine kürzere Syntax nutzen kann,
aber im Moment überspringen wir das.)
Die gute Nachricht in Bezug auf JavaScript als Query-Sprache lautet, dass
Sie die Operationen so aufbauen können, als wären sie Objekte. Im folgenden
Beispiel bauen wir ein Kriterium auf, bei dem die Einwohnerzahl zwischen
10000 und einer Million liegen soll.
var population _ range = {}
population _ range[ '$lt' ] = 1000000
population _ range[ '$gt' ] = 10000
db.towns.find(
{ name : /^P/, population : population _ range },
{ name: 1 }
)
{ " _ id" : ObjectId( "4d0ada87bb30773266f39fe5" ), "name" : "Portland" }
Wir sind nicht auf Zahlenbereiche beschränkt, sondern können auch Da-
tumsbereiche abrufen. So können wir beispielsweise alle Namen mit einem
last_census kleiner oder gleich dem 31.1.2008 wie folgt finden:
db.towns.find(
{ last _ census : { $lte : ISODate( '2008-31-01' )}},
{ _ id : 0, name: 1 }
)
{ "name" : "Punxsutawney" }
{ "name" : "Portland" }
Beachten Sie, wie wir das _ id -Feld in der Ausgabe unterdrücken, indem wir
es explizit auf 0 setzen.
Search WWH ::




Custom Search