摘要:由于项目需要,把项目升级到了。但是升级了之后发现扩展不能用了。以上只支持扩展了。而扩展的驱动使用起来比扩展显得很复杂,啰嗦。终于找到了一个比较简洁的类。项目地址因为项目是国外友人贡献的。这里整理了一些常用的方法。
由于项目需要,把项目升级到了php7。但是升级了之后发现mongo扩展不能用了。php7.0以上只支持mongodb扩展了。而mongodb扩展的驱动使用起来比monmgo扩展显得很复杂,啰嗦。在网上找了很久。终于找到了一个比较简洁的mongodb类。语法跟mongo的差不多。清晰,自然。
</>复制代码
项目地址https://github.com/mongodb/mongo-php-library
因为项目是国外友人贡献的。所以没有可以看的很明白的文档。这里整理了一些常用的方法。
</>复制代码
获取实例
</>复制代码
$uri = "mongodb://username:password@host/database";
$client = new MongoDBClient($uri);
</>复制代码
获取集合
</>复制代码
$collection = $client->selectCollection("test","test");
</>复制代码
获取一条数据
</>复制代码
$data = $collection->findOne(["id"=>1]);
</>复制代码
获取多条数据
</>复制代码
$where = ["type"=>1];
$options = array(
"projection" => array("id" => 1, "age" => 1, "name" => -1), // 指定返回哪些字段 1 表示返回 -1 表示不返回
"sort" => array("id" => -1), // 指定排序字段
"limit" => 10, // 指定返回的条数
"skip" => 0, // 指定起始位置
);
$data = $collection->find($where,$options)->toArray();
var_dump($data);
</>复制代码
去重
</>复制代码
$fileName = "name";
$where = ["id" => ["$lt" => 100]]
$ret = $this->collection->distinct($fileName,$where);
</>复制代码
插入一条数据
</>复制代码
$data = array(
"id" => 2,
"age" => 20,
"name" => "张三"
);
$ret = $collection->insertOne($data);
$id=$ret->getInsertedId();
</>复制代码
批量插入
</>复制代码
$data = array(
["id" => 1, "age" => 21, "name" => "1xiaoli"],
["id" => 2, "age" => 22, "name" => "2xiaoli"],
["id" => 3, "age" => 23, "name" => "3xiaoli"],
["id" => 4, "age" => 26, "name" => "4xiaoli"],
["id" => 5, "age" => 24, "name" => "5xiaoli"],
["id" => 6, "age" => 25, "name" => "6xiaoli"],
);
$ret = $collection->insertMany($data);
# 返回插入id
var_dump($ret->getInsertedIds());
</>复制代码
更新一条
</>复制代码
$ret = $collection->updateOne(array("id" => 2), array("$set" => array("age" => 56)));
</>复制代码
更新多条
</>复制代码
$ret = $collection->updateMany(array("id" => ["$gt" => 1]), array("$set" => array("age" => 56, "name" => "x")));
</>复制代码
删除一条
</>复制代码
$ret = $collection->deleteOne(array("id" => 2));
</>复制代码
删除多条
</>复制代码
$collection->deleteMany(array("id" => array("$in" => array(1, 2))));
</>复制代码
聚合
</>复制代码
$ops = [
[
"$match" =>["type"=>["$in"=>[2,4]]]
],
[
"$sort" => ["list.create_time" => -1] //sort顺序不能变,否则会造成排序混乱,注意先排序再分页
],
[
"$skip" => 0
],
[
"$limit" => 20000
],
];
$data = $collection->aggregate($ops);
foreach ($data as $document)
{
var_dump($document);
}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29397.html
摘要:由于项目需要,把项目升级到了。但是升级了之后发现扩展不能用了。以上只支持扩展了。而扩展的驱动使用起来比扩展显得很复杂,啰嗦。终于找到了一个比较简洁的类。项目地址因为项目是国外友人贡献的。这里整理了一些常用的方法。 由于项目需要,把项目升级到了php7。但是升级了之后发现mongo扩展不能用了。php7.0以上只支持mongodb扩展了。而mongodb扩展的驱动使用起来比monmgo扩...
摘要:上的扩展有两个,都是官方出品的,一个叫,一个是,前者已经被官方废弃,不再提供稳定的更新,官方推荐使用后者,并且后者是支持的。在上搜索即可找到,也可以通过安装。使用作为中间件,不用修改现有代码。 pecl上的mongodb扩展有两个,都是官方出品的,一个叫mongo,一个是mongodb,前者已经被官方废弃,不再提供稳定的更新,官方推荐使用后者,并且后者是支持php7的。在pecl上搜索...
摘要:上的扩展有两个,都是官方出品的,一个叫,一个是,前者已经被官方废弃,不再提供稳定的更新,官方推荐使用后者,并且后者是支持的。在上搜索即可找到,也可以通过安装。使用作为中间件,不用修改现有代码。 pecl上的mongodb扩展有两个,都是官方出品的,一个叫mongo,一个是mongodb,前者已经被官方废弃,不再提供稳定的更新,官方推荐使用后者,并且后者是支持php7的。在pecl上搜索...
摘要:年开发者应该熟练使用,并且知道版本更新内容。对开发和运维人员来说,最希望的就是一次性创建或配置,可以在任意地方正常运行。是标准规范,是开发的实践标准。对开发者来说语言推荐和,全栈的选择非常多,推荐热门的 前言 在前天(2018-08-02)已经发布了PHP 7.3.0.beta1 Released 如果你还没有使用 PHP7 ,那真的很遗憾。2018年PHP开发者应该熟练使用 PHP7...
摘要:在及以前,官方提供了两个扩展,和,其中是对以等几个核心类为基础的类群进行操作,封装得很方便,所以基本上都会选择扩展。这种想法很违背简化操作带来的语法问题而专注逻辑优化的思路。 前言 使用 PHP+MongoDB 的用户很多,因为 MongoDB 对非结构化数据的存储很方便。在 PHP5 及以前,官方提供了两个扩展,Mongo 和 MongoDB,其中 Mongo 是对以 MongoCl...
阅读 3498·2021-11-12 10:36
阅读 2572·2021-11-02 14:43
阅读 2226·2019-08-30 14:23
阅读 3537·2019-08-30 13:08
阅读 990·2019-08-28 18:09
阅读 3233·2019-08-26 12:22
阅读 3242·2019-08-23 18:24
阅读 2084·2019-08-23 18:17