If you are getting "writing more" shown at random places on the screen, it's a MongoDB connector bug in 1.0.5.
Bug report: http://jira.mongodb.org/browse/PHP-91
Update to the latest connector driver and it should go away.
Tutoriel
Sommaire
- Création d'une connexion
- Sélection d'une base de données
- Sélection d'une collection
- Insertion d'un document
- Trouver un document en utilisant la méthode MongoCollection::findOne
- Ajout de plusieurs documents
- Comptage des documents dans une collection
- Utilisation d'un curseur pour récupérer tous les documents
- Ajout d'un critère à une requête
- Récupération de plusieurs documents avec une requête
- Création d'un index
Voici le driver PHP pour MongoDB.
Vous trouverez dans ce chapitre quelques rapides exemples montrant la façon de se connecter, d'insérer des documents, de requêter des documents, de traverser des jeux de résultats, et de se déconnecter d'une base de données MongoDB. Vous trouverez encore plus de détails dans chaque étape de ce tutoriel.
<?php
// connexion
$m = new MongoClient();
// sélection d'une base de données
$db = $m->comedy;
// sélectionne une collection (analogue à une table de base de données relationnelle)
$collection = $db->cartoons;
// ajoute un enregistrement
$document = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($document);
// ajoute un autre enregistrement, avec une façon différente d'insertion
$document = array( "title" => "XKCD", "online" => true );
$collection->insert($document);
// récupère tout de la collection
$cursor = $collection->find();
// traverse les résultats
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>
L'exemple ci-dessus va afficher :
Calvin and Hobbes XKCD
Josh Heidenreich ¶
2 years ago
php at whoah dot net ¶
3 years ago
Make sure array keys consecutive before inserting. As of 1.0.6 driver, the following will end up as an object of key:value pairs, instead of an array, because it's trying to maintain the 0 and 2 keys:
$array = array('a', 'b', 'c');
unset($array[1]);
$document = array(
'embedded' => $array,
);
// assuming local
$mongo = new Mongo();
$mongo->test->test->insert($document);
mongodb result:
{ "_id" : ObjectId(...), "embedded" : { "0" : "a", "2" : "c" } }
This is bad if you plan on indexing the embedded property as an array because objects and arrays are indexed differently.
Whether the behaviour will change or not, this is logged here: http://jira.mongodb.org/browse/PHP-104
If you know about it, it's not major, just use a sort() before inserting, or use array_* methods to remove elements instead of unset() -- anything that will re-adjust keys.
