PHP
Mongo-php
Recherche…
Syntaxe
- trouver()
Tout entre MongoDB et Php
Exigences
Le serveur MongoDB s'exécute généralement sur le port 27017. (tapez
mongod
à l'invite de commande pour exécuter le serveur mongodb)Php installé en tant que cgi ou fpm avec l'extension MongoDB installée (l'extension MongoDB n'est pas fournie avec PHP par défaut)
Bibliothèque de compositeurs (mongodb / mongodb) (dans la racine du projet, exécutez
php composer.phar require "mongodb/mongodb=^1.0.0"
pour installer la bibliothèque MongoDB)
Si tout va bien, vous êtes prêt à aller de l'avant.
Vérifier l'installation de PHP
Si ce n'est pas sûr, vérifiez l'installation de php -v
exécutant php -v
à l'invite de commande renverra quelque chose comme ça
PHP 7.0.6 (cli) (built: Apr 28 2016 14:12:14) ( ZTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
Vérifier l'installation de MongoDB
Vérifiez l'installation de MongoDB en exécutant mongo --version
renverra la MongoDB shell version: 3.2.6
Vérification de l'installation du composeur
Vérifiez l'installation de Composer en exécutant php composer.phar --version
retournera Composer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39
`
Connexion à MongoDB à partir de php
<?php
//This path should point to Composer's autoloader from where your MongoDB library will be loaded
require 'vendor/autoload.php';
// when using custom username password
try {
$mongo = new MongoDB\Client('mongodb://username:password@localhost:27017');
print_r($mongo->listDatabases());
} catch (Exception $e) {
echo $e->getMessage();
}
// when using default settings
try {
$mongo = new MongoDB\Client('mongodb://localhost:27017');
print_r($mongo->listDatabases());
} catch (Exception $e) {
echo $e->getMessage();
}
Le code ci-dessus se connecte en utilisant la bibliothèque de composeurs MongoDB ( mongodb/mongodb
) incluse en tant que vendor/autoload.php
pour se connecter au serveur MongoDB exécuté sur le port
: 27017
. Si tout va bien, il se connectera et listera un tableau. Si une exception se produit, la connexion au serveur MongoDB sera imprimée.
CREATE (Insertion) dans MongoDB
<?php
//MongoDB uses collection rather than Tables as in case on SQL.
//Use $mongo instance to select the database and collection
//NOTE: if database(here demo) and collection(here beers) are not found in MongoDB both will be created automatically by MongoDB.
$collection = $mongo->demo->beers;
//Using $collection we can insert one document into MongoDB
//document is similar to row in SQL.
$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
//Every inserted document will have a unique id.
echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>
Dans l'exemple, nous utilisons l'instance $ mongo précédemment utilisée dans la partie Connecting to MongoDB from php
. MongoDB utilise le format de données de type JSON, donc en php, nous utiliserons array pour insérer des données dans MongoDB, cette conversion de tableau en Json et inversement sera effectuée par la bibliothèque mongo. Chaque document dans MongoDB a un identifiant unique nommé _id, pendant l'insertion, nous pouvons l'obtenir en utilisant $result->getInsertedId()
;
LIRE (Rechercher) dans MongoDB
<?php
//use find() method to query for records, where parameter will be array containing key value pair we need to find.
$result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
// all the data(result) returned as array
// use for each to filter the required keys
foreach ($result as $entry) {
echo $entry['_id'], ': ', $entry['name'], "\n";
}
?>
Drop in MongoDB
<?php
$result = $collection->drop( [ 'name' => 'Hinterland'] );
//return 1 if the drop was sucessfull and 0 for failure
print_r($result->ok);
?>
Il existe de nombreuses méthodes qui peuvent être effectuées sur $collection
voir la documentation officielle de MongoDB