摘要:由于項目需要,把項目升級到了。但是升級了之后發現擴展不能用了。以上只支持擴展了。而擴展的驅動使用起來比擴展顯得很復雜,啰嗦。終于找到了一個比較簡潔的類。項目地址因為項目是國外友人貢獻的。這里整理了一些常用的方法。
由于項目需要,把項目升級到了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); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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...
閱讀 3315·2021-11-12 10:36
閱讀 2467·2021-11-02 14:43
閱讀 2146·2019-08-30 14:23
閱讀 3462·2019-08-30 13:08
閱讀 919·2019-08-28 18:09
閱讀 3129·2019-08-26 12:22
閱讀 3140·2019-08-23 18:24
閱讀 2016·2019-08-23 18:17