Database Reference
In-Depth Information
Lesen: Mehr Spaß mit Mongo
Vorhin haben wir
find
ohne Parameter aufgerufen, um alle Dokumente ab-
zurufen. Um ein bestimmtes Dokument abzurufen, müssen Sie nur eine
_
id
-
Property setzen.
_
id
ist vom Typ
ObjectId
, weshalb Sie für die Query einen
String über die Funktion
ObjectId(str)
entsprechend umwandeln müssen.
db.towns.find({
"
_
id"
: ObjectId(
"4d0ada1fbb30773266f39fe4"
)})
{
"
_
id"
: ObjectId(
"4d0ada1fbb30773266f39fe4"
),
"name"
:
"Punxsutawney"
,
"population"
: 6200,
"last
_
census"
:
"Thu Jan 31 2008 00:00:00 GMT-0800 (PST)"
,
"famous
_
for"
:[
"phil the groundhog"
],
"mayor"
:{
"name"
:
"Jim Wehrle"
}
}
Die
find()
-Funktion akzeptiert auch einen optionalen zweiten Parameter:
ein fields-Objekt, mit dessen Hilfe sich die empfangenen Felder filtern las-
sen. Wenn Sie nur den Namen der Stadt brauchen (zusammen mit der
_
id
),
übergeben Sie
name
mit dem Wert
1
(oder
true
).
db.towns.find({
_
id : ObjectId(
"4d0ada1fbb30773266f39fe4"
) }, { name : 1 })
{
"
_
id"
: ObjectId(
"4d0ada1fbb30773266f39fe4"
),
"name"
:
"Punxsutawney"
}
Um alle Felder
außer
name
abzurufen, setzen Sie
name
auf
0
(oder
false
oder
null
).
db.towns.find({
_
id : ObjectId(
"4d0ada1fbb30773266f39fe4"
) }, { name : 0 })
{
"
_
id"
: ObjectId(
"4d0ada1fbb30773266f39fe4"
),
"population"
: 6200,
"last
_
census"
:
"Thu Jan 31 2008 00:00:00 GMT-0800 (PST)"
,
"famous
_
for"
:[
"phil the groundhog"
]
}
Wie bei PostgreSQL können Sie mit Mongo Ad-hoc-Queries über Feldwerte,
Bereiche oder eine Kombination verschiedener Kriterien erzeugen. Um alle
Städte aufzuspüren, die mit dem Buchstaben
P
beginnen und weniger als
10000 Einwohner haben, können Sie einen Perl-kompatiblen regulären Aus-
druck (PCRE)
2
und einen Bereichsoperator verwenden.