Databases Reference
In-Depth Information
Der aufmerksame Leser bemerkt es sofort: Ich habe in dem Datensatz die Stadt unterschla-
gen. Nun, es gibt weitaus schwerere Aufgaben, als in MongoDB einen Datensatz zu än-
dern. Wie schon in dem Eingangsbeispiel gibt es die Funktion „ update() “. MongoDB er-
laubt das Update ganzer Dokumente, wie es auch in CouchDB der Fall ist. Um die Adres-
sen hinzuzufügen, kann also das Array um das Adressenfeld erweitert werden, und dann
per update( $neuesArray ) eingespielt werden. Doch MongoDB erlaubt auch Operationen
auf Elementebene. Mit „$ set “ und „$ unset “ können Felder erzeugt und verändert sowie
komplett gelöscht werden. Diese Methoden können auf alle Dokumente in einer Collection
oder durch Setzen von Filtern auch auf einzelne Dokumente durchgeführt werden. Gehen
wir davon aus, dass es außer dem Autohaus Meier noch weitere Autohäuser mit diesen Da-
ten in der Collection gibt. Im ersten Beispiel fügen wir die Adresse mit leeren Angaben in
jedes Dokument ein (zugegeben, ein ziemlich blödes Beispiel, da gerade die Schemalosig-
keit ein Argument gegen leere Felder ist. Was leer ist, wird einfach weggelassen. Doch neh-
men wir an, das Frontend braucht aus irgendeinem Grund die leeren Angaben, vielleicht
zum Generieren von Eingabemasken).
$options=array("multiple"=>true);
// Alle Datensätze ändern. Default: Nur
einer
$filter=array();
// keine Filter gesetzt, alle Datensätze betroffen
$update=array('$set'=>array
("Adresse"=>array("plz"=>null,"Stadt"=>null)));
$autohausColl
->update($filter,$update,$options);
Nun haben alle Autohäuser das neue Element „Adresse“ . Um ein ganz spezielles Autohaus
zu füllen, müssen ein oder mehrere Kriterien Filterkriterien gesetzt werden. Für unser Au-
tohaus Meier sieht es also so aus:
$filter=array("name"=>"Meier");
// Alternativ auch: "_id"=>1
$update=array('$set'=>array
Search WWH ::




Custom Search