1. 程式人生 > >PHP操作mongo資料庫

PHP操作mongo資料庫

一、連線資料庫

$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();

會更新補充~