Database Reference
In-Depth Information
Wenn wir uns mit find alle System-Indizes für unsere phones -Collection aus-
geben lassen, sollte der neue als letzter aufgeführt sein. Der erste Index wird
immer automatisch erzeugt, um ein schnelles Lookup über die _ id zu ge-
währleisten, und der zweite ist der vorhin von uns angelegte eindeutige In-
dex.
db.system.indexes.find({ "ns" : "book.phones" })
{
"name" : " _ id _ " ,
"ns" : "book.phones" ,
"key" :{ " _ id" :1}
}
{
" _ id" : ObjectId( "4d2c96d1df18c2494fa3061c" ),
"ns" : "book.phones" ,
"key" :{ "display" :1},
"name" : "display _ 1" ,
"unique" : true,
"dropDups" : true
}
{
" _ id" : ObjectId( "4d2c982bdf18c2494fa3061d" ),
"ns" : "book.phones" ,
"key" :{ "components.area" :1},
"name" : "components.area _ 1"
}
Unsere book.phones -Indizes haben Wirkung gezeigt.
Wir wollen diesen Abschnitt mit der Bemerkung abschließen, dass der Auf-
bau von Indizes bei einer großen Collection langsamund Ressourcen-intensiv
sein kann. Sie sollten diese Auswirkungen beachten und Indizes außerhalb
der Stoßzeiten erzeugen, Indizes immer im Hintergrund generieren und sie
nicht automatisch, sondern von Hand anlegen. Sie finden online viele weitere
Tipps und Tricks zur Indexierung, aber das sind die grundlegenden, die Sie
kennen sollten.
Aggregierte Queries
Die gestern untersuchten Queries eignen sich für die einfache Extraktion
von Daten, doch die Nachbearbeitung müssen Sie übernehmen. Wenn wir
beispielsweise die Anzahl der Telefonnummern zwischen 559 und 9999 zäh-
len wollen, würden wir es vorziehen, wenn die Datenbank das im Backend
für uns erledigt. Wie bei PostgreSQL ist count einer der einfachsten Aggrega-
toren. Er verarbeitet eine Query und gibt eine Zahl (von Treffern) zurück.
db.phones.count({ 'components.number' : { $gt : 5599999 } })
50000
Search WWH ::




Custom Search