婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > PHP使用mongoclient簡(jiǎn)單操作mongodb數(shù)據(jù)庫示例

PHP使用mongoclient簡(jiǎn)單操作mongodb數(shù)據(jù)庫示例

熱門標(biāo)簽:地圖標(biāo)注風(fēng)向標(biāo) 銀川ai電話機(jī)器人 安陽自動(dòng)外呼系統(tǒng)價(jià)格是多少 電梯外呼線路板維修視頻 臨沂智能電銷機(jī)器人軟件 浙江外呼電話系統(tǒng)軟件 上海公司外呼系統(tǒng)線路 芒果電銷機(jī)器人 十堰ai電話機(jī)器人效果怎么樣

本文實(shí)例講述了PHP使用mongoclient簡(jiǎn)單操作mongodb數(shù)據(jù)庫。分享給大家供大家參考,具體如下:

最好回到《mongodb shell基礎(chǔ)命令【進(jìn)階篇】》,再來看這里的內(nèi)容,否則有些東西我講的比較籠統(tǒng)。

好了,不廢話了,直接貼代碼吧,別害怕看代碼,基本每行都寫了注釋了

!-- 
1、本文采用mongoClient類來實(shí)現(xiàn)mongodb的簡(jiǎn)單操作,
2、需要事先熟悉《mongodb基礎(chǔ)命令——進(jìn)階篇》的內(nèi)容
3、其中更新數(shù)據(jù)部分只給出了一個(gè)$set的例子,但是跟操作命令是一樣的,注意理解與嘗試
4、在最下來有對(duì)函數(shù)進(jìn)行簡(jiǎn)單的介紹,其中的一些內(nèi)容會(huì)在本人學(xué)習(xí)完后續(xù)章節(jié)后回來補(bǔ)充的
 -->

?php
try {
  // 連接mongodb數(shù)據(jù)庫
  $mongo = new MongoClient();
  // 選擇數(shù)據(jù)庫
  $db_name=$mongo->test;
  // 或者這樣也可以
  // $db_name=$mongo->selectDB('test');
  // 選擇集合
  $collection_name=$db_name->student;
  // 或者和上面一樣
  // $collection_name=$$db_name->selectCollection('collection_name');
  echo 'pre>';
  // 查看全部dbs
  $dbs=$mongo->listDBs();
  // var_dump($dbs);
  $collections=$db_name->listCollections();
  // var_dump($collections);
  // 定義被插入的數(shù)據(jù),而且php的數(shù)組形式與json格式類似,所以很容易理解
  $input = array(
   'name' =>'yang' ,
   'sex'=>'man',
   'sorce' => array(
   'math' =>60 ,
   'pe'=>30 
   )
   );
  // 插入數(shù)據(jù),$result會(huì)顯示插入數(shù)據(jù)的結(jié)果
  // insert的第二個(gè)參數(shù)內(nèi)容請(qǐng)看--函數(shù)1
  // $result=$collection_name->insert($input);
  // var_dump($result);
  // 查詢單條數(shù)據(jù),跟shell命令里的findOne()一樣
  $findOne=$collection_name->findOne();
  // var_dump($findOne);
  // 查找全部數(shù)據(jù),記住一點(diǎn),find()函數(shù)的返回值不是跟findOne()函數(shù)一樣的數(shù)組。而是一個(gè)對(duì)象,所以不能直接
  // 打印出來,至于如何讀取其中的內(nèi)容,可以使用foreach循環(huán)
  $find=$collection_name->find();
  // 可以跟mongo shell中一樣為find()函數(shù)傳遞第一個(gè)篩選參數(shù)
  $situation = array(
   'name' => 'yang', 
   );
  // 選擇返回的字段內(nèi)容
  $field = array('sorce' => 1 );
  // 詳細(xì)解釋看--函數(shù)2
  $find=$collection_name->find($situation,$field);
  // while ($each=$find->getNext()) {
  // var_dump($each);
  // }
  $sort=$collection_name->find()->sort(array('math' => -1, ));
  $limit=$collection_name->find()->sort(array('math' => -1, ))->limit(2);
  $skip=$collection_name->find()->sort(array('math' => -1, ))->skip(2);
  $count=$collection_name->find()->sort(array('math' => -1, ))->count();
  // echo $count;
  // foreach ($skip as $value) {
  // var_dump($value);
  // }
  // 條件操作符的使用
  $situation2=array(
   // 注意這里字段的設(shè)置跟shell中一樣
   'item.quantity'=>array('$gt'=>5)
   );
  $gt=$db_name->orders->find($situation2);
  /**********************************************數(shù)據(jù)的更新*******************************************/
  // 注意,接下來這段代碼會(huì)更新整個(gè)匹配到的文檔,就跟update沒有使用$set一樣
  // 詳情查看函數(shù)3
  $update=$db_name->orders->update(
   array('_class'=>'com.mongo.model.Orders'),
   array('_class'=>'hello world')
   );
  // 注意$set的位置,是不是與shell命令中一致
  $update=$db_name->orders->update(
   array('_class'=>'com.mongo.model.Orders'),
   array('$set'=>array('_class'=>'hello world'))
   );
  // 從這里可以看到,如果會(huì)shell命令的話,那么這一節(jié)的重點(diǎn)就是將shell命令與php數(shù)組之間的相互轉(zhuǎn)化了
  /**********************************************數(shù)據(jù)的刪除*******************************************/
  // 刪除集合中的數(shù)據(jù)
  $remove=$db_name->orders->remove(array('_class'=>'com.mongo.model.Orders'));
  // 刪除整個(gè)集合
  $db_name->orders->drop();
  // 本來還有一些集合之間使用DBRef聯(lián)查以及GRidFS的內(nèi)容的,但是那個(gè)還是等以后要用了再來補(bǔ)充好了
} catch (MongoConnectionException $e) {
  echo $e->getMessage();
}
?>

其中幾個(gè)函數(shù)的解釋

--------------------------函數(shù)1--------------------

插入數(shù)據(jù)函數(shù) insert

$mongo->$db_name->$collection_name->insert($input.$options)

$option中的參數(shù)以及默認(rèn)值

$option=array(
'fsync'=> false,
'j'  => false,
'w'  => 1,
'wtimeout'=>10000,
'timeout'=>10000
)

'fsync' 

這個(gè)參數(shù)設(shè)置為真時(shí),php將會(huì)告訴mongodb將當(dāng)前寫入數(shù)據(jù)直接寫入硬盤,即使還沒有全部從php文檔寫入mongodb數(shù)據(jù)庫

'j'

這個(gè)參數(shù)設(shè)置為真市,php將會(huì)告訴mongodb在數(shù)據(jù)插入成功之前就將本次修改寫入日志

'w'

如果設(shè)置成0,寫操作將不會(huì)被確認(rèn),在這里還不會(huì)深究

'wtimeout'

跟上面的'w'綁定使用的,后面會(huì)介紹的

'timeout'

客戶端等待服務(wù)器響應(yīng)的超時(shí)時(shí)間,也就是如果php的服務(wù)器等待mongodb數(shù)據(jù)庫寫入數(shù)據(jù)的時(shí)間,如果超過了timeout規(guī)定的時(shí)間,就算本次寫入失敗

---------------------------函數(shù)2--------------------

篩選數(shù)據(jù)函數(shù) find

$mongo->$db_name->$collection_name->find($situation,$field)

$situation可以為空,表示返回全部數(shù)據(jù),也可以是一個(gè)數(shù)組,表示篩選條件,就跟mongodb命令一樣
$field也可以為空,表示返回全部字段,也可以跟第一個(gè)參數(shù)一樣,傳入數(shù)組,規(guī)定返回的字段

注意,即使上面使用$field限制返回字段,_id字段還是會(huì)自動(dòng)返回的

---------------------------函數(shù)3--------------------

更新數(shù)據(jù) update

$mongo->$db_name->$collection_name->update($criteria,$update,$option)

結(jié)合shell命令就很好理解了
$criteria 表示篩選進(jìn)行更新的文檔
$update 就是要更新后的數(shù)據(jù)

$option=array(
'upsert'=>false,
'multiple'=>true,
'fsync'=>false,
'w'=>1,
'wtimeout'=>10000,
'timeout'=>10000
)

后幾個(gè)的作用在函數(shù)1里講過了就不贅述了,upsert為true表示如果當(dāng)前文檔存在就更新,不存在就創(chuàng)建,multiple為真表示匹配該條件的文檔都會(huì)被更新,即不止更新滿足條件的一個(gè)文檔。

---------------------------函數(shù)3--------------------

刪除數(shù)據(jù) remove

$mongo->$db_name->$collection_name->remove($remove,$option)

$remove表示跟find()第一個(gè)參數(shù)一樣的篩選條件

$option=array(
'justOne'=>false,
'fsync'=>false,
'w'=>1,
'j'=>false,
'wtimeout'=>10000,
'timeout'=>10000
)

上面有的我就不贅述了,justOne根據(jù)名字來,就一個(gè),如果為true表示就刪除一個(gè)匹配$remove的文檔

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP+MongoDB數(shù)據(jù)庫操作技巧大全》、《PHP基于pdo操作數(shù)據(jù)庫技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • PHP封裝的簡(jiǎn)單連接MongoDB類示例
  • php如何利用pecl安裝mongodb擴(kuò)展詳解
  • TP5(thinkPHP5)框架mongodb擴(kuò)展安裝及特殊操作示例
  • php操作mongodb封裝類與用法實(shí)例
  • PHP操作Mongodb封裝類完整實(shí)例
  • mongodb和php的用法詳解

標(biāo)簽:武威 常州 遵義 寧夏 遂寧 徐州 吐魯番 荊門

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP使用mongoclient簡(jiǎn)單操作mongodb數(shù)據(jù)庫示例》,本文關(guān)鍵詞  PHP,使用,mongoclient,簡(jiǎn)單,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP使用mongoclient簡(jiǎn)單操作mongodb數(shù)據(jù)庫示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP使用mongoclient簡(jiǎn)單操作mongodb數(shù)據(jù)庫示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 昌平区| 普格县| 巴林左旗| 郁南县| 建昌县| 中阳县| 孟连| 文成县| 建水县| 雷山县| 宁津县| 桂阳县| 海兴县| 德江县| 卢湾区| 西宁市| 商河县| 南召县| 阿瓦提县| 肇州县| 自贡市| 浪卡子县| 英山县| 海兴县| 温州市| 麻江县| 抚州市| 台中县| 蓝田县| 怀来县| 三明市| 漯河市| 益阳市| 忻州市| 静乐县| 德格县| 贵溪市| 同德县| 荔浦县| 巴彦淖尔市| 上犹县|