Eine Datenbank besteht in MongoDB aus einer Sammlung von Collections. Diese
sind vergleichbar mit einer Tabelle in MySQL. Innerhalb von Collections können
Dokumente hinterlegt werden. Ein Dokument entspricht einem Datensatz (Tupel)
aus einer MySQL Datenbank und darf bis zu 16 Megabytes groß sein. Die
Dokumente innerhalb einer Collection können eine unterschiedliche Struktur
besitzen.
Der beispielhafte Aufbau eines Dokumentes sieht dabei wie folgt aus:
1 {
2 _id: 50a8240b927d5d8b5891743c,
3 Objektname: "Positionsobjekt",
4 Position:
5 {
6 latitude : 54.153739,
7 longitude: 9.080372
8 }
9 LastMove: "Fri Jan 29 2013 15:42:42 GMT+0200 (CEST)"
10 }
Wie aus dem Beispiel ersichtlich kann ein Dokument Werte mit unterschiedlichen
Datentypen enthalten. Mögliche Datentypen sind string (Objektname), integer,
float (latitude, longitude), boolean, array, embedded-doc (Position) , date
(LastMove), DBREf (Referenz zu anderen Dokumenten) und ObjectId (_id).
Eine wichtige Rolle in MongoDB spielt das Objekt ObjectId, welches das Feld_id
beinhaltet und die Einmaligkeit eines Dokumentes innerhalb einer Collection
darstellt (Primärschlüssel). Das Feld _id ist von MongoDB nach einem 12 Byte
langen Muster aufgebaut. Diese ID wird einem Dokument beim Anlegen
automatisch hinzugefügt, falls keine explizite ID angeben wird.
Abfragen bzw. Kommandos in MongoDB sind nach einem bestimmten Muster
aufgebaut:
db..();
Durch das vorangestellte Kürzel db wird ein Bezug zu der derzeitig ausgewählten
Datenbank hergestellt, auf der die Aktion ausgeführt werden soll.
„collection“ bezieht sich auf die gewählte Collection.
„action“ stellt die letztendliche Operation auf eine Collection bzw. einer
Datenbank dar. Das Einfügen von Dokumenten in eine Collection geschieht mit Hilfe der Methode „insert“. Das Format der hinzuzufügenden Daten muss auch hier dem JSONFormat
entsprechen.
1 db.users.insert(){
2 Name: "Dennis",
3 Alter: 25
4 };
Durch die insert()-Action wird die Collection users automatisch angelegt, falls
diese noch nicht existiert. Im Vergleich zu einer MySQL-Datenbank muss die
Collection („Tabelle“) users nicht im Vorfeld definiert bzw. angelegt werden.