Database Reference
In-Depth Information
$elemMatch
-Kriterien können auch fortgeschrittene Operatoren nutzen. Sie
können jedes Land bestimmen, das leckeres Essen exportiert und bei dem
auch die Gewürz-Kennung (condiment) gesetzt ist:
db.countries.find(
{
'exports.foods'
:{
$elemMatch : {
tasty : true,
condiment : { $exists : true }
}
}
},
{
_
id : 0, name : 1 }
)
{
"name"
:
"Mexico"
}
Mexico ist genau das, was wir gesucht haben.
Boolesche Operatoren
Bisher waren unsere Kriterien implizite
UND
-Operationen. Wenn Sie versu-
chen, ein Land namens
United States
mit der
_
id
mx
zu finden, gibt Mongo
keinen Treffer zurück.
db.countries.find(
{
_
id :
"mx"
, name :
"United States"
},
{
_
id:1}
)
Wenn Sie hingegen mit
$or
nach dem einen
ODER
dem anderen suchen, wer-
den zwei Ergebnisse zurückgeliefert. Stellen Sie sich das als
Präfixnotation
vor:
ORAB
.
db.countries.find(
{
$or : [
{
_
id :
"mx"
},
{ name :
"United States"
}
]
},
{
_
id:1 }
)
{
"
_
id"
:
"us"
}
{
"
_
id"
:
"mx"
}
Es gibt so viele Operatoren, dass wir sie hier nicht alle behandeln können,
doch wir hoffen, Ihnen eine Vorstellung von MongoDBs mächtigen Query-