PHP
Mongo-php
Suche…
Syntax
- finden()
Alles dazwischen MongoDB und Php
Bedarf
MongoDB-Server, der normalerweise auf dem Port 27017 ausgeführt wird. (
mongod
an der Eingabeaufforderung mongod ein, um den mongodb-Server auszuführen.)PHP als cgi oder fpm mit installierter MongoDB-Erweiterung installiert (MongoDB-Erweiterung wird nicht mit dem Standard-PHP mitgeliefert)
Composer-Bibliothek (mongodb / mongodb). (In der Projektwurzel muss
php composer.phar require "mongodb/mongodb=^1.0.0"
, um die MongoDB-Bibliothek zu installieren.)
Wenn alles in Ordnung ist, können Sie weitermachen.
Überprüfen Sie die Installation von PHP
Wenn Sie nicht sicher sind, überprüfen Sie die Installation von Php, indem Sie an der Eingabeaufforderung php -v
ausführen
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
Überprüfen Sie die Installation von MongoDB
Überprüfen Sie die MongoDB-Installation, indem Sie mongo --version
MongoDB shell version: 3.2.6
Überprüfen Sie die Installation von Composer
Überprüfen Sie die Installation von Composer, indem Sie php composer.phar --version
Composer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39
php composer.phar --version
gibt die Composer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39
`
Verbindung zu MongoDB von 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();
}
Der obige Code stellt eine Verbindung mit der MongoDB-Composer-Bibliothek ( mongodb/mongodb
) her, die als vendor/autoload.php
mongodb/mongodb
enthalten ist, um eine Verbindung mit dem MongoDB-Server 27017
, der auf port
: 27017
. Wenn alles in Ordnung ist, wird eine Verbindung hergestellt und ein Array aufgelistet. Wenn eine Ausnahme beim Verbinden mit dem MongoDB-Server auftritt, wird die Nachricht gedruckt.
CREATE (Einfügen) 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 diesem Beispiel verwenden wir die $ mongo-Instanz, die zuvor im Abschnitt Connecting to MongoDB from php
. MongoDB verwendet das Datenformat JSON-Typ. In php verwenden wir Daten, um Daten in MongoDB einzufügen. Diese Konvertierung von Array in Json und umgekehrt erfolgt durch die Mongo-Bibliothek. Jedes Dokument in MongoDB hat eine eindeutige ID mit dem Namen _id. Während des Einfügens können wir dies mithilfe von $result->getInsertedId()
.
LESEN (Finden) 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);
?>
Es gibt viele Methoden, die mit $collection
siehe Offizielle Dokumentation von MongoDB