您好,登錄后才能下訂單哦!
php7中mongodb的使用方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
提示:PHP的mongodb擴展,從5.6開始已經廢棄了原來的mongo擴展,PHP7的pecl下載地址:https://pecl.php.net/package/mongodb,或者選擇mongodb官方開發:https://github.com/mongodb/mongo-php-library,git上的這個支持以前mongo寫法,pecl上的mongodb不支持以前的寫法。
下面用PHP7新的API總結一下:
一:CURD
1:鏈接
<?php //鏈接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:123@10.10.10.104:27017');
root 用戶;123:密碼;如果沒有密碼則不寫
2:查詢
<?php //鏈接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); //查詢 $filter = ['user_id'=>['$gt'=>0]]; //查詢條件 user_id大于0 $options = [ 'projection' => ['_id' => 0], //不輸出_id字段 'sort' => ['user_id'=>-1] //根據user_id字段排序 1是升序,-1是降序 ]; $query = new MongoDB\Driver\Query($filter, $options); //查詢請求 $list = $manager->executeQuery('location.box',$query); // 執行查詢 location數據庫下的box集合 foreach ($list as $document) { print_r($document); }
查詢更多條件使用方法,參考第二節mongodb基本命令,查詢
3:添加
<?php //鏈接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); $bulk = new MongoDB\Driver\BulkWrite; //默認是有序的,串行執行 //$bulk = new MongoDB\Driver\BulkWrite(['ordered' => flase]);//如果要改成無序操作則加flase,并行執行 $bulk->insert(['user_id' => 2, 'real_name'=>'中國',]); $bulk->insert(['user_id' => 3, 'real_name'=>'中國人',]); $manager->executeBulkWrite('location.box', $bulk); //執行寫入 location數據庫下的box集合
4:修改
<?php //鏈接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); $bulk = new MongoDB\Driver\BulkWrite; //默認是有序的,串行執行 //$bulk = new MongoDB\Driver\BulkWrite(['ordered' => flase]);//如果要改成無序操作則加flase,并行執行 $bulk->update( ['user_id' => 2], ['$set'=>['real_name'=>'中國國'] ]); //$set相當于mysql的 set,這里和mysql有兩個不同的地方, //1:字段不存在會添加一個字段; //2:mongodb默認如果條件不成立,新增加數據,相當于insert //如果條件不存在不新增加,可以通過設置upsert //db.collectionName.update(query, obj, upsert, multi); $bulk->update( ['user_id' => 5], [ '$set'=>['fff'=>'中國國'] ], ['multi' => true, 'upsert' => false] //multi為true,則滿足條件的全部修改,默認為true,如果改為false,則只修改滿足條件的第一條 //upsert為 treu:表示不存在就新增 ); $manager->executeBulkWrite('location.box', $bulk); //執行寫入 location數據庫下的box集合
ordered 設置
1:默認是ture,按照順序執行插入更新數據,如果出錯,停止執行后面的,mongo官方叫串行。
2:如果是false,mongo并發的方式插入更新數據,中間出現錯誤,不影響后續操作無影響,mongo官方叫并行
5:刪除
<?php //鏈接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); $bulk = new MongoDB\Driver\BulkWrite; //默認是有序的,串行執行 //$bulk = new MongoDB\Driver\BulkWrite(['ordered' => flase]);//如果要改成無序操作則加flase,并行執行 $bulk->delete(['user_id'=>5]);//刪除user_id為5的字段 $manager->executeBulkWrite('location.box', $bulk); //執行寫入 location數據庫下的box集合
delete還可以通過limit設置不同刪除方式
$bulk->delete(['user_id' => 1], ['limit' => 1]); // limit 為 1 時,刪除第一條匹配數據 $bulk->delete(['user_id' => 2], ['limit' => 0]); // limit 為 0 時,刪除所有匹配數據,默認刪除所有
6:捕獲異常
MongoDB\Driver\Exception\AuthenticationException MongoDB\Driver\Exception\BulkWriteException MongoDB\Driver\Exception\ConnectionException MongoDB\Driver\Exception\ConnectionTimeoutException MongoDB\Driver\Exception\Exception //所有驅動程序異常的公共接口 MongoDB\Driver\Exception\ExecutionTimeoutException MongoDB\Driver\Exception\InvalidArgumentException MongoDB\Driver\Exception\LogicException MongoDB\Driver\Exception\RuntimeException MongoDB\Driver\Exception\SSLConnectionException MongoDB\Driver\Exception\UnexpectedValueException MongoDB\Driver\Exception\WriteException
說明:http://php.net/manual/zh/class.mongodb-driver-exception-authenticationexception.php
感謝各位的閱讀!看完上述內容,你們對php7中mongodb的使用方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。