Database Reference
In-Depth Information
("Adresse"=>array("plz"=>13507,"Stadt"=>"Berlin")));
Der Update-Befehl ist ein recht mächtiges Werkzeug, um Daten zu ändern. So können nicht
nur einzelne Werte neu gesetzt werden, sondern Operationen auf Arrays (Werte hinzufü-
gen/löschen) , und auf Zahlenwerte (erhöhen/verringern) ausgeführt werden, ohne die Da-
ten vorab zu laden. Aber auch die Filterfunktionen haben einiges zu bieten. So kann nicht
nur nach einem oder mehreren Feldern gefiltert werden, auch Vergleichsoperationen wie
>,<,>=,<=,!= sind möglich, ebenso wie die Abfrage, ob Felder von einem bestimmten Typ
sind. Sogar JavaScript ist in den Filtern erlaubt. Es ist die gleiche Filterfunktion, die auch
für die Selektion der Daten benutzt wird.
Anders als in der Shell, wo die Funktion find() alle Daten geliefert hat, bekommt man im
PHP-Treiber ein MongoCursorObject zurück. Dieses Objekt kann mit getNext() durchge-
wandert werden, und liefert das aktuelle Dokument als assoziatives Array:
$cursor=$autohausColl->find();
while($doc=$cursor->getNext()) {
foreach($doc as $key=>$value) {
echo $key.":".$value."<br>";
}
echo "<hr>";
}
Um nur die Autohäuser der Hauptstadt anzuzeigen, wird der find() -Funktion wieder ein Fil-
ter mitgegeben. Da die Stadt in diesem Fall ein Teil eines Arrays ist, greifen wir auf dieses
Element mit der Punktnotation zu:
$filter=array( " adresse.stadt " => " Berlin " );
$cursor=$autohausColl->find($filter);
Wenn mehr als eine Bedingung gewünscht ist, können die Filter hintereinander in das
Array geschrieben werden. So sucht $filter=array('adresse.stadt'=>'Berlin', 'mar-
kenA'=>array('$size'=>1)) nach allen Autohäusern in Berlin, die mehr als eine Marke
vertreten. Weitere Funktionen, die auf den Cursor angewandt werden können, sind skip ,
limit ,
und
sort .
Ein
$cursor=$autohausColl
->find()->skip(2)->limit(5)-
Search WWH ::




Custom Search