注意,本文所有的代碼實(shí)例均以php代碼做演示。
安裝mongodb擴(kuò)展
擴(kuò)展包安裝地址:https://pecl.php.net/package/mongodb
下載最穩(wěn)定的版本,然后把擴(kuò)展包上傳到服務(wù)器上。
# 解壓tar zxf mongodb-1.8.0.tgz cd mongodb-1.8.0# 安裝/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-config make & make install# 修改php配置文件php.ini# 加入一行extension=mongodb# 測試php -m | grep mongodbmongodb擴(kuò)展教程:https://docs.mongodb.com/php-library/current/reference/
使用phplib
composer require mongodb/mongodb插入文檔
和mysql類似,mongodb插入文檔也能插入單條或多條。下面看插入單條:
$mongo = new mongodb\\\\client();$collect = $mongo->users->users;$collect->insertone(['name'=> 'james', 'age' => 35]);如果沒有聲明_id字段,該操作會自動(dòng)為新文檔創(chuàng)建一個(gè)_id字段。當(dāng)然,我們也可以手動(dòng)指定_id的值
$collect->insertone(['_id' => 1,'name'=> 'james', 'age' => 35]);該函數(shù)執(zhí)行成功返回 mongodb\\\\insertoneresult object,失敗則會拋出異常。
接下來看如何插入多個(gè)文檔:
$collect->insertmany([ [ 'name'=>'paul', 'age' => 34], [ 'name'=>'durant', 'age' => 31], [ 'name'=> 'curry', 'age' => 31]]);需要注意的是,在批量插入的時(shí)候,如果其中有一個(gè)文檔插入失敗,后面的就不會繼續(xù)插入,但前面的會插入。
# 第一條會插入成功,第二條時(shí)插入失敗,后面的也不會繼續(xù)插入$collect->insertmany([ [ 'name'=>'paul', 'age' => 34], ['_id'=> 1, 'name'=> 'jeans', 'age' => 1], // _id=1已存在 [ 'name'=>'durant', 'age' => 31], [ 'name'=> 'curry', 'age' => 31]]);如想忽略錯(cuò)誤,繼承插入,則需給該方法添加個(gè)選項(xiàng)ordered,設(shè)置為false.
$collect->insertmany([ [ 'name'=>'jay', 'age' => 34], ['_id'=> 1, 'name'=> 'jeans', 'age' => 1], // _id=1已存在 [ 'name'=>'xtf', 'age' => 31],],['ordered' => false]);注意:上述遇到錯(cuò)誤能夠插入成功,但是該語句會拋出異常。如想忽略錯(cuò)誤,繼續(xù)程序的執(zhí)行,則需要去捕獲異常。
刪除文檔
注意:刪除是危險(xiǎn)操作,不能恢復(fù),不能撤回。
通過查詢語句刪除文檔:
/ * 目前有4個(gè)name為james的文檔 */ # 刪除一個(gè)文檔$ret = $collect->deleteone(['name'=>'james']);printf($ret->getdeletedcount()); // 1# 刪除滿足條件的所有文檔$ret = $collect->deletemany(['name'=>'james']);printf($ret->getdeletedcount());刪除所有文檔(其實(shí)是整個(gè)集合都被刪除了):
$collect->drop();mongodb文檔的創(chuàng)建以及刪除,使用起來非常的簡單。
推薦:《mongodb視頻教程》