php7 只能使用Mongodb driver來驅動mongodb。
使用Mongodb Driver連接數據庫剛開始使用Mongodb Driver的時候我是拒絕的。查看官方文檔只看到一排的類和不知所云的成員方法,翻了半天也找不到 find, update, delete等等關鍵詞,更甚至稍微復雜一點的比如副本集,用戶認證都不知道怎么連接數據庫。
幸好文檔不是完全沒有,點開Mongodb/Driver/Manger::constructor 看到有幾個構造參數
$uri 形如 mongo://[host:port,host:port,host:port]/[dbname]?[username=aa password=bb replicaSet=cc]
$uriOptions 就是上面?后面的那一串參數,可以寫在這里
$driverOptions 其他選項比如默認的讀寫參數
MongodbDriver CURD操作這就是是我一開始覺得這個驅動反人類的地方,文檔里沒有任何的find,update,delete等字眼,只有一個Command類和一個Query類。
Query 類稍微好一些,提供了部分查詢選項。
實際上,對Mongo數據庫的所有操作,都可以通過Command類進行。而php的驅動文檔對具體的 commandOptions 是不做介紹的。
正因為我是mongodb萌新,所以才會覺得這個驅動無比奇葩反人類,根本就無從下手。
我們使用這個驅動的關鍵,是用Command類構造一個commandOption
而這個commandOption需要我們從mongodb的官方文檔中去了解
MONGODB MANUAL - Database Commands
所有的操作,數據增刪改查,聚合排序,數據庫狀態,用戶認證等等,都可以通過這些命令搞定。下面隨便舉幾個例子
連接數據庫
$this- _conn = new MongoDB/Driver/Manager( mongodb://localhost:27017/test $this- _db = test // execute command.function exec($opts) { $cmd = new MongoDB/Driver/Command($opts); $res = $this- _conn- executeCommand($this- _db, $cmd); return $res- toArray();}
條件查詢,按需返回
$cmd = [ find = table , // collection表名 filter = [ _id = [ $gte = 10, $lt = 20]], projection = [ name = 1, email = 1]$res = $this-exec($cmd);
修改記錄
$cmd = [ update = table , // collection 表名 updates = [ [ q = [_id = [ $lt = 10]], u = [ status = 0], upsert = 0, multi = 1], [ q = [_id = [ $gte = 10]], u = [ status = 1], upsert = 0, multi = 1], ordered = 1, // 是否依次執行updates語句,true表示執行失敗后繼續后面的語句,false 表示一旦失敗立即返回]
刪除記錄,limit只能是1或0!
$cmd = [ delete = table , // collection 表名 deletes = [ [ q = [_id = [ $lt = 5]], limit = 0], // 0表示所有,1表示刪除1行]
插入數據
$cmd = [ delete = table , // collection 表名 deletes = [ [ q = [_id = [ $lt = 5]], limit = 0], // 0表示所有,1表示刪除1行]
分組,排序
$cmd = [ aggregate = table , // collection 表名 pipeline = [ $group = html' target='_blank'>class , $sort = score ]
讀取數據庫狀態
$cmd = [ replSetGetStatus = 1,]輔助類 BSON
最有用的當然是 MongoDB/BSON/Javascript 和 MongoDB/BSON/ObjectId ,分別是傳入 javascript 腳本函數,和使用 mongodb 的ojectid。
異常 Exception所有MongoDBDriver 產生的異常都可以用 MongoDB/Driver/Exception/Exception 捕獲
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !
相關推薦:
PHP使用Azure Storage Blob上傳文件
php中imagettfbbox和imagettftext 文字圖片自動換行的方法
以上就是PHP7中 MongoDB Driver的使用介紹的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答