Recherche…


Syntaxe

  1. 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



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow