Mongodb php
| Fiche express | |
|---|---|
| Extension historique | mongo (PECL, classe Mongo)
|
| Extension moderne | mongodb + bibliothèque mongodb/mongodb (Composer)
|
| Voir aussi | MongoDB · Mongo cli |
Cette page documente l'ancien driver PHP mongo (extension PECL, classe Mongo),
obsolète et retiré de PHP depuis longtemps (extension dépréciée en 2015, incompatible
PHP 7+). Il est remplacé par l'extension bas-niveau mongodb associée à la
bibliothèque mongodb/mongodb installée via Composer. Le contenu ci-dessous est
conservé à titre de référence historique, avec l'équivalent moderne indiqué à chaque section.
Installation
Historique (obsolète)
yum install php-pecl-mongo
# ou
pecl install mongo
; php.ini
extension=mongo.so
Moderne
composer require mongodb/mongodb
; php.ini
extension=mongodb.so
Connexion
Historique :
$con = new Mongo(); // connexion sur localhost:27017
$db = $con->nombasededonnees;
Équivalent moderne :
$client = new MongoDB\Client("mongodb://localhost:27017");
$db = $client->nombasededonnees;
Insertion
Historique :
$article = array(
"titre" => 'MongoDB exemple',
"texte" => "Ceci est un test d'article pour tester MongoDB",
"date" => '2009-03-03',
"auteur" => 'Auteur1',
"comments" => array(
array("texte" => 'Super article !', "date" => '2009-03-04', "auteur" => 'Utilisateur1'),
array("texte" => 'Je confirme, le NoSQL ça déchire !', "date" => '2009-03-04', "auteur" => 'Utilisateur2'),
),
);
$db->articles->insert($article);
(à moderniser) : insert() est déprécié au profit de insertOne() /
insertMany() — voir Mongo cli pour l'équivalent côté shell.
Équivalent moderne :
$db->articles->insertOne($article);
Recherche
Historique :
$collectionArticles = $db->articles;
$query = array("titre" => "MongoDB exemple");
$champs = array('comments' => 0);
$article = $collectionArticles->findOne($query, $champs);
Équivalent moderne (la projection passe désormais dans un tableau d'options) :
$article = $db->articles->findOne($query, ['projection' => $champs]);
Index
Historique :
$collectionArticles->ensureIndex(array("titre" => 1));
Équivalent moderne (ensureIndex est l'alias déprécié de createIndex) :
$collectionArticles->createIndex(['titre' => 1]);