站長資訊網
最全最豐富的資訊網站

分享一個很有用的php7+mongodb類!

由于項目需要,把項目升級到了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); }

推薦:《PHP7教程》

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久无码av亚洲精品色午夜| 日韩a级无码免费视频| 久久精品国产亚洲AV麻豆~| 精品福利一区二区三区精品国产第一国产综合精品 | 日韩精品一区二区午夜成人版| 无码国产精品一区二区免费模式| 国语自产精品视频在线观看| 国产精品 一区 在线| 九九免费久久这里有精品23| 欧美日韩亚洲精品| 国产人成精品香港三级在| 国产亚洲精品美女久久久| 国产精品美女WWW爽爽爽视频| 无码人妻精品一区二区三区99不卡 | 国产精品龙口护士门在线观看| 日韩在线天堂免费观看| 亚洲国产精品ⅴa在线观看| 亚洲精品国产情侣av在线| 乱码精品一区二区三区| 日韩一级在线播放| 亚洲日韩图片专区第1页| 中日韩欧一本在线观看| 日韩土豪美女在线视频观看| 国产农村妇女精品一二区| 国产模特众筹精品视频| 国产三级精品视频| 国产亚洲美女精品久久| 国产成人精品123区免费视频| 国产精品一区二区三区高清在线| 国产精品四虎在线观看免费| 国产精品久久久久久影视| 国产精品亚洲综合| 成人网站免费大全日韩国产| 日韩在线永久免费播放| 秋霞日韩久久理论电影| 香蕉99久久国产综合精品宅男自 | 久久国产精品视频| 尹人久久久香蕉精品| 黑人精品videos亚洲人| 久久亚洲精品成人综合| 久久99国产乱子伦精品免费|