PHP7使用 MongoDB\Driver\Manager 类实现简单的增删改查操作
MongoDB 是一个由 C++ 语言编写的,基于分布式文件存储的数据库。官方号称是“现代应用程序中最流行的数据库”(The most popular database for modern apps)。
今天,我们 PHP7 使用 MongoDB\Driver\Manager 类来演示一下简单的增删改查操作。
查看 MongoDB 扩展文档,主要有一下几组类:
MongoDB\Driver // MongoDB驱动类
MongoDB\BSON // BSON 类型与序列化函数
MongoDB\Driver\Monitoring // 监控
MongoDB\Driver\Exception // 异常
基本操作用的都是 MongoDB\Driver 下的操作类:
MongoDB\Driver\Manager // 入口类,负责维护与MongoDB的连接,执行读写和命令
MongoDB\Driver\BulkWrite // 收集要发送到服务器的一个或多个插入、更新、删除等操作
MongoDB\Driver\Query // 构造查询对象
MongoDB\Driver\Cursor // 封装MongoDB命令或查询的结果
MongoDB\Driver\WriteResult // 封装执行结果
准备
首先确保已经安装好了 php-mongodb 扩展。
$ php -m |grep mongodb
mongodb
查看当前 PHP 版本:
$ php -v
PHP 7.4.0beta4 (cli) (built: Aug 28 2019 11:41:49) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0-dev, Copyright (c) Zend Technologies
with Zend OPcache v7.4.0beta4, Copyright (c), by Zend Technologies
创建一个 MongoDB 连接:
创建一个 mongodb.php 文件
<?php
// 连接 MongoDB 数据库
$manager = new MongoDB\Driver\Manager("mongodb://192.168.10.10:27017");
var_dump($manager);
如果连接正常会返回如下结果:
$ php mongodb.php
object(MongoDB\Driver\Manager)#1 (2) {
["uri"]=> string(29) "mongodb://192.168.10.10:27017"
["cluster"]=> array(1) {
[0]=> array(10) {
["host"]=> string(13) "192.168.10.10"
["port"]=> int(27017)
["type"]=> int(1)
["is_primary"]=> bool(false)
["is_secondary"]=> bool(false)
["is_arbiter"]=> bool(false)
["is_hidden"]=> bool(false)
["is_passive"]=> bool(false)
["last_is_master"]=> array(10) {
["ismaster"]=> bool(true)
["maxBsonObjectSize"]=> int(16777216)
["maxMessageSizeBytes"]=> int(48000000)
["maxWriteBatchSize"]=> int(100000)
["localTime"]=> object(MongoDB\BSON\UTCDateTime)#2 (1) {
["milliseconds"]=> string(13) "1592379129886"
}
["logicalSessionTimeoutMinutes"]=> int(30)
["minWireVersion"]=> int(0)
["maxWireVersion"]=> int(7)
["readOnly"]=> bool(false)
["ok"]=> float(1)
}
["round_trip_time"]=> int(0)
}
}
}
如果连接了一个不存在的地址,会返回如下结果。因为不管连接的地址存不存在,都会返回一个MongoDB\Driver\Manager对象:
$ php mongodb.php
object(MongoDB\Driver\Manager)#1 (2) {
["uri"]=> string(30) "mongodb://192.168.10.102:27017"
["cluster"]=> array(0) { }
}
增:插入一些数据
使用 MongoDB\Driver\BulkWrite 类进行操作:
英文单词 bulk 大量 + write 写,就是大量的写入,即进行批量写入操作(insert, update, delete)。
$manager = new MongoDB\Driver\Manager("mongodb://192.168.10.10:27017"