Database Reference
In-Depth Information
db.countries.insert({
_
id :
"mx"
,
name :
"Mexico"
,
exports : {
foods : [{
name :
"salsa"
,
tasty : true,
condiment : true
}]
}
})
Um zu prüfen, ob die Länder eingefügt wurden, führen wir die count-Funk-
tion aus (und erwarten den Wert 3).
> print( db.countries.count() )
3
Nun wollen wir ein Land finden, das nicht nur Bacon exportiert, sondern
leckeren (
tasty
)Bacon.
db.countries.find(
{
'exports.foods.name'
:
'bacon'
,
'exports.foods.tasty'
: true },
{
_
id : 0, name : 1 }
)
{
"name"
:
"United States"
}
{
"name"
:
"Canada"
}
Doch das ist nicht das Ergebnis, das wir suchen. Mongo hat
Canada
zurück-
gegeben, weil es Bacon und leckeren Sirup exportiert. Hier hilft uns
$elem-
Match
. Es legt fest, dass ein Dokument (oder verschachteltes Dokument) als
Treffer zählt, wenn
all
unsere Kriterien erfüllt sind.
db.countries.find(
{
'exports.foods'
:{
$elemMatch : {
name :
'bacon'
,
tasty : true
}
}
},
{
_
id : 0, name : 1 }
)
{
"name"
:
"United States"
}