摘要:由于项目需要,把项目升级到了。但是升级了之后发现扩展不能用了。以上只支持扩展了。而扩展的驱动使用起来比扩展显得很复杂,啰嗦。终于找到了一个比较简洁的类。项目地址因为项目是国外友人贡献的。这里整理了一些常用的方法。
由于项目需要,把项目升级到了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/19351.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...
阅读 1335·2021-10-09 09:44
阅读 1351·2021-09-28 09:36
阅读 15773·2021-09-22 15:55
阅读 1205·2021-09-22 15:45
阅读 2178·2021-09-02 09:48
阅读 2705·2019-08-29 17:19
阅读 2281·2019-08-29 10:54
阅读 856·2019-08-23 18:40