Mongodb php

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
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]);

Voir aussi

  • MongoDB — panorama général
  • Mongo cli — shell d'administration, équivalents des méthodes de collection
  • Sql — langage SQL générique