摘要:由于項(xiàng)目需要,把項(xiàng)目升級到了。但是升級了之后發(fā)現(xiàn)擴(kuò)展不能用了。以上只支持?jǐn)U展了。而擴(kuò)展的驅(qū)動使用起來比擴(kuò)展顯得很復(fù)雜,啰嗦。終于找到了一個比較簡潔的類。項(xiàng)目地址因?yàn)轫?xiàng)目是國外友人貢獻(xiàn)的。這里整理了一些常用的方法。
由于項(xiàng)目需要,把項(xiàng)目升級到了php7。但是升級了之后發(fā)現(xiàn)mongo擴(kuò)展不能用了。php7.0以上只支持mongodb擴(kuò)展了。而mongodb擴(kuò)展的驅(qū)動使用起來比monmgo擴(kuò)展顯得很復(fù)雜,啰嗦。在網(wǎng)上找了很久。終于找到了一個比較簡潔的mongodb類。語法跟mongo的差不多。清晰,自然。
項(xiàng)目地址https://github.com/mongodb/mongo-php-library
因?yàn)轫?xiàng)目是國外友人貢獻(xiàn)的。所以沒有可以看的很明白的文檔。這里整理了一些常用的方法。
獲取實(shí)例
$uri = "mongodb://username:password@host/database"; $client = new MongoDBClient($uri);
獲取集合
$collection = $client->selectCollection("test","test");
獲取一條數(shù)據(jù)
$data = $collection->findOne(["id"=>1]);
獲取多條數(shù)據(jù)
$where = ["type"=>1]; $options = array( "projection" => array("id" => 1, "age" => 1, "name" => -1), // 指定返回哪些字段 1 表示返回 -1 表示不返回 "sort" => array("id" => -1), // 指定排序字段 "limit" => 10, // 指定返回的條數(shù) "skip" => 0, // 指定起始位置 ); $data = $collection->find($where,$options)->toArray(); var_dump($data);
去重
$fileName = "name"; $where = ["id" => ["$lt" => 100]] $ret = $this->collection->distinct($fileName,$where);
插入一條數(shù)據(jù)
$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); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/29397.html
摘要:由于項(xiàng)目需要,把項(xiàng)目升級到了。但是升級了之后發(fā)現(xiàn)擴(kuò)展不能用了。以上只支持?jǐn)U展了。而擴(kuò)展的驅(qū)動使用起來比擴(kuò)展顯得很復(fù)雜,啰嗦。終于找到了一個比較簡潔的類。項(xiàng)目地址因?yàn)轫?xiàng)目是國外友人貢獻(xiàn)的。這里整理了一些常用的方法。 由于項(xiàng)目需要,把項(xiàng)目升級到了php7。但是升級了之后發(fā)現(xiàn)mongo擴(kuò)展不能用了。php7.0以上只支持mongodb擴(kuò)展了。而mongodb擴(kuò)展的驅(qū)動使用起來比monmgo擴(kuò)...
摘要:上的擴(kuò)展有兩個,都是官方出品的,一個叫,一個是,前者已經(jīng)被官方廢棄,不再提供穩(wěn)定的更新,官方推薦使用后者,并且后者是支持的。在上搜索即可找到,也可以通過安裝。使用作為中間件,不用修改現(xiàn)有代碼。 pecl上的mongodb擴(kuò)展有兩個,都是官方出品的,一個叫mongo,一個是mongodb,前者已經(jīng)被官方廢棄,不再提供穩(wěn)定的更新,官方推薦使用后者,并且后者是支持php7的。在pecl上搜索...
摘要:上的擴(kuò)展有兩個,都是官方出品的,一個叫,一個是,前者已經(jīng)被官方廢棄,不再提供穩(wěn)定的更新,官方推薦使用后者,并且后者是支持的。在上搜索即可找到,也可以通過安裝。使用作為中間件,不用修改現(xiàn)有代碼。 pecl上的mongodb擴(kuò)展有兩個,都是官方出品的,一個叫mongo,一個是mongodb,前者已經(jīng)被官方廢棄,不再提供穩(wěn)定的更新,官方推薦使用后者,并且后者是支持php7的。在pecl上搜索...
摘要:年開發(fā)者應(yīng)該熟練使用,并且知道版本更新內(nèi)容。對開發(fā)和運(yùn)維人員來說,最希望的就是一次性創(chuàng)建或配置,可以在任意地方正常運(yùn)行。是標(biāo)準(zhǔn)規(guī)范,是開發(fā)的實(shí)踐標(biāo)準(zhǔn)。對開發(fā)者來說語言推薦和,全棧的選擇非常多,推薦熱門的 前言 在前天(2018-08-02)已經(jīng)發(fā)布了PHP 7.3.0.beta1 Released 如果你還沒有使用 PHP7 ,那真的很遺憾。2018年P(guān)HP開發(fā)者應(yīng)該熟練使用 PHP7...
摘要:在及以前,官方提供了兩個擴(kuò)展,和,其中是對以等幾個核心類為基礎(chǔ)的類群進(jìn)行操作,封裝得很方便,所以基本上都會選擇擴(kuò)展。這種想法很違背簡化操作帶來的語法問題而專注邏輯優(yōu)化的思路。 前言 使用 PHP+MongoDB 的用戶很多,因?yàn)?MongoDB 對非結(jié)構(gòu)化數(shù)據(jù)的存儲很方便。在 PHP5 及以前,官方提供了兩個擴(kuò)展,Mongo 和 MongoDB,其中 Mongo 是對以 MongoCl...
閱讀 3322·2021-11-12 10:36
閱讀 2479·2021-11-02 14:43
閱讀 2154·2019-08-30 14:23
閱讀 3469·2019-08-30 13:08
閱讀 928·2019-08-28 18:09
閱讀 3138·2019-08-26 12:22
閱讀 3151·2019-08-23 18:24
閱讀 2023·2019-08-23 18:17