MongoDB 和 Php 之间的一切
要求
-
在端口上运行的 MongoDB 服务器通常为 27017.(在命令提示符下键入
mongod
以运行 mongodb 服务器) -
Php 安装为安装了 MongoDB 扩展的 cgi 或 fpm(MongoDB 扩展没有与默认的 php 绑定)
-
Composer 库(mongodb / mongodb)。(在项目根运行
php composer.phar require "mongodb/mongodb=^1.0.0"
中安装 MongoDB 库)
如果一切正常,你就可以继续前进了。
检查 Php 安装
如果不确定通过在命令提示符下运行 php -v
来检查 Php 安装将返回这样的内容
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
检查 MongoDB 安装
通过运行 mongo --version
检查 MongoDB 安装将返回 MongoDB shell version: 3.2.6
检查 Composer 安装
通过运行 php composer.phar --version
检查 Composer 安装将返回 Composer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39
`
从 php 连接到 MongoDB
<?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();
}
上面的代码将使用包含为 vendor/autoload.php
的 MongoDB 编写器库(mongodb/mongodb
)连接到连接到运行在 port
:27017
上的 MongoDB 服务器。如果一切正常,它将连接并列出一个数组,如果连接到 MongoDB 服务器发生异常,将打印该消息。
创建(插入)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()}'";
?>
在示例中,我们使用之前在 Connecting to MongoDB from php
部分中使用的$ mongo 实例。MongoDB 使用 JSON 类型的数据格式,因此在 php 中我们将使用数组将数据插入 MongoDB,这种从数组到 Json 的转换(反之亦然)将由 mongo 库完成。MongoDB 中的每个文档都有一个名为_id 的唯一 ID,在插入过程中我们可以使用 $result->getInsertedId()
获取;
在 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";
}
?>
放入 MongoDB
<?php
$result = $collection->drop( [ 'name' => 'Hinterland'] );
//return 1 if the drop was sucessfull and 0 for failure
print_r($result->ok);
?>
有许多方法可以在 tihuan 上执行 15 请参阅 MongoDB 的官方文档