PHP操作mongo資料庫
阿新 • • 發佈:2018-12-24
一、連線資料庫
$conn=new MongoClient('mongodb://localhost:27017');
//mongodb://username:[email protected]:port
$db=$conn->chili; //選擇資料庫
$col=$db->test; //選擇集合
$dbs=$conn->listDBs(); //檢視所有的表
$collections=$db->listCollections();
二、查詢操作
//查詢全部資料
$all=$col->find();
foreach ($all as $v){
var_dump($v );
}
//查詢一條 findOne
//設定查詢語句
$query['title']='ddff';
//設定顯示欄位
$field=array('_id'=>false,'title'=>true,'value'=>true);
$res=$col->find($query,$field);
foreach ($res as $v){
var_dump($v);
}
//排序
$data=$col->find()->sort(array('value'=>-1));//從大到小,1從小到大
//全部文件數
$data=$col->find()->count();
//var_dump($data);
//limit
$data=$col->find()->sort(array('value'=>-1))->limit(2);
//skip
$data=$col->find()->sort(array('value'=>-1))->skip(2);//跳過前兩個
//skip和limit可結合實現分頁效果
$page=1;
$everypage=2;
$data=$col->find()->sort(array('value'=>-1))->skip(($page-1)*$everypage)->limit($everypage );
//頁碼從第一頁開始
//條件操作符
$query['value']=array('$gte'=>500);//>=500
$field=array('_id'=>false,'title'=>true,'value'=>true);//設定顯示欄位
$res=$col->find($query,$field);
//模糊查詢
$query['title']=new MongoRegex('/南海/');
$field=array('_id'=>false,'title'=>true,'value'=>true);//設定顯示欄位
$res=$col->find($query,$field);
//將查詢結果轉化為陣列
$res=iterator_to_array($res);
var_dump($res);
三、插入操作
$data=array(
'title'=>'南海仲裁',
'value'=>585
);
$col->insert($data);
/*
**** insert第二個引數
$option=array(
'fsync'=> false, 真時,php將會告訴mongodb將當前寫入資料直接寫入硬碟,即使還沒有全部從php文件寫入mongodb資料庫
'j'=> false, 真時,php將會告訴mongodb在資料插入成功之前就將本次修改寫入日誌
'w'=> 1, 0時寫操作將不會被確認
'wtimeout'=>10000,
'timeout'=>10000 客戶端等待伺服器響應的超時時間,也就是如果php的伺服器等待mongodb資料庫寫入資料的時間,如果超過了timeout規定的時間,就算本次寫入失敗
)
* /
四、修改操作
$data=array('$set'=>array('value'=>800));
$res=$col->update(array('title'=>'南海仲裁'),$data);//只更新了第一條資料
/*
**** update第三個引數
$option=array(
'upsert'=>false, true表示如果當前文件存在就更新,不存在就建立
'multiple'=>true, true表示更新所有
'fsync'=>false,
'w'=>1,
'wtimeout'=>10000,
'timeout'=>10000
)
*/
//=======================
$res=$col->update(array('title'=>'南海仲裁'),$data,array('multiple'=>true));//更新多條資料
var_dump($res);//$res['ok']=1
五、刪除操作
$res=$col->remove(array('title'=>'ddddg'),array('justOne'=>true));
var_dump($res);//$res['ok']=1
/*
**** 第二個引數
$option=array(
'justOne'=>false, true時只刪除一條
'fsync'=>false,
'w'=>1,
'j'=>false,
'wtimeout'=>10000,
'timeout'=>10000
)
*/
六、操作完成要關閉連線
$conn->close();
會更新補充~