Zoeken…


Syntaxis

  1. vind()

Alles tussen MongoDB en Php

Voorwaarden

  • MongoDB-server meestal op poort 27017. (typ mongod op opdrachtprompt om mongodb-server uit te voeren)

  • Php geïnstalleerd als cgi of fpm met geïnstalleerde MongoDB-extensie (MongoDB-extensie wordt niet gebundeld met standaard php)

  • Componistenbibliotheek (mongodb / mongodb). (In het project uitvoeren php composer.phar require "mongodb/mongodb=^1.0.0" om de MongoDB-bibliotheek te installeren)

Als alles in orde is, ben je klaar om verder te gaan.

Controleer op php-installatie

als u niet zeker bent, controleer dan de installatie van Php door php -v vanaf de opdrachtprompt, zal zoiets als dit teruggeven

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

Controleer op MongoDB-installatie

Controleer de installatie van MongoDB door mongo --version MongoDB shell version: 3.2.6 retourneert de MongoDB shell version: 3.2.6

Controle voor Composer-installatie

Controleer op Composer-installatie door php composer.phar --version Composer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39 retourneert Composer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39 '


Verbinden met MongoDB vanaf 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();
  }

De bovenstaande code maakt verbinding met behulp van MongoDB componistenbibliotheek ( mongodb/mongodb ) opgenomen als vendor/autoload.php om verbinding te maken met de MongoDB-server die op port : 27017 . Als alles in orde is, wordt er verbinding gemaakt en wordt een array weergegeven. Als er zich een uitzondering voordoet bij verbinding met de MongoDB-server, wordt het bericht afgedrukt.


CREATE (invoegen) in 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()}'";
?>

In het voorbeeld gebruiken we de $ mongo-instantie die eerder werd gebruikt in het gedeelte Connecting to MongoDB from php . MongoDB maakt gebruik van het JSON-type gegevensformaat, dus in php zullen we array gebruiken om gegevens in MongoDB in te voegen, deze conversie van array naar Json en vice versa gebeurt door mongo library. Elk document in MongoDB heeft een unieke id genaamd _id, tijdens het invoegen kunnen we dit krijgen met $result->getInsertedId() ;


LEES (Zoeken) in 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);

?>

Er zijn veel methoden die kunnen worden uitgevoerd bij $collection zie officiële documentatie van MongoDB



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow