Szukaj…


Składnia

  1. odnaleźć()

Wszystko pomiędzy MongoDB a Php

Wymagania

  • Serwer MongoDB działający na porcie zwykle 27017. (wpisz mongod w wierszu polecenia, aby uruchomić serwer mongodb)

  • PHP zainstalowany jako cgi lub fpm z zainstalowanym rozszerzeniem MongoDB (rozszerzenie MongoDB nie jest dołączone do domyślnego php)

  • Biblioteka kompozytora (mongodb / mongodb). (W głównym katalogu projektu php composer.phar require "mongodb/mongodb=^1.0.0" aby zainstalować bibliotekę MongoDB)

Jeśli wszystko jest w porządku, możesz przejść dalej.

Sprawdź instalację php

jeśli nie jesteś pewien, sprawdź instalację Php, uruchamiając php -v w wierszu polecenia, zwróci coś takiego

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

Sprawdź instalację MongoDB

Sprawdź instalację MongoDB, uruchamiając mongo --version MongoDB shell version: 3.2.6 zwróci MongoDB shell version: 3.2.6

Sprawdź instalację Composer

Sprawdź instalację Composer, uruchamiając php composer.phar --version Composer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39 zwróci Composer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39 '


Łączenie się z MongoDB z 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();
  }

Powyższy kod połączy się przy użyciu biblioteki kompozytora MongoDB ( mongodb/mongodb ) zawartej jako vendor/autoload.php aby połączyć się z serwerem MongoDB działającym na port : 27017 . Jeśli wszystko jest w porządku, połączy się i wyświetli tablicę, jeśli wystąpi wyjątek podczas łączenia się z serwerem MongoDB komunikat zostanie wydrukowany.


UTWÓRZ (Wstawianie) do 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()}'";
?>

W tym przykładzie używamy instancji $ mongo poprzednio używanej w Connecting to MongoDB from php części Connecting to MongoDB from php . MongoDB używa formatu danych typu JSON, więc w php użyjemy tablicy do wstawienia danych do MongoDB, ta konwersja z tablicy na Json i odwrotnie zostanie wykonana przez bibliotekę mongo. Każdy dokument w MongoDB ma unikalny identyfikator o nazwie _id, podczas wstawiania możemy go uzyskać za pomocą $result->getInsertedId() ;


PRZECZYTAJ (Znajdź) w 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";
 }

?>

Wrzuć MongoDB

<?php

 $result = $collection->drop( [ 'name' => 'Hinterland'] );

 //return 1 if the drop was sucessfull and 0 for failure
 print_r($result->ok);

?>

Istnieje wiele metod, które można wykonać na $collection patrz oficjalna dokumentacja MongoDB



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow