注意,本文所有的代碼實例均以php代碼做演示。
安裝mongodb擴展
擴展包安裝地址:https://pecl.php.net/package/mongodb
下載最穩(wěn)定的版本,然后把擴展包上傳到服務器上。
# 解壓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擴展教程: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字段,該操作會自動為新文檔創(chuàng)建一個_id字段。當然,我們也可以手動指定_id的值
$collect->insertone(['_id' => 1,'name'=> 'james', 'age' => 35]);該函數執(zhí)行成功返回 mongodb\\\\insertoneresult object,失敗則會拋出異常。
接下來看如何插入多個文檔:
$collect->insertmany([ [ 'name'=>'paul', 'age' => 34], [ 'name'=>'durant', 'age' => 31], [ 'name'=> 'curry', 'age' => 31]]);需要注意的是,在批量插入的時候,如果其中有一個文檔插入失敗,后面的就不會繼續(xù)插入,但前面的會插入。
# 第一條會插入成功,第二條時插入失敗,后面的也不會繼續(xù)插入$collect->insertmany([ [ 'name'=>'paul', 'age' => 34], ['_id'=> 1, 'name'=> 'jeans', 'age' => 1], // _id=1已存在 [ 'name'=>'durant', 'age' => 31], [ 'name'=> 'curry', 'age' => 31]]);如想忽略錯誤,繼承插入,則需給該方法添加個選項ordered,設置為false.
$collect->insertmany([ [ 'name'=>'jay', 'age' => 34], ['_id'=> 1, 'name'=> 'jeans', 'age' => 1], // _id=1已存在 [ 'name'=>'xtf', 'age' => 31],],['ordered' => false]);注意:上述遇到錯誤能夠插入成功,但是該語句會拋出異常。如想忽略錯誤,繼續(xù)程序的執(zhí)行,則需要去捕獲異常。
刪除文檔
注意:刪除是危險操作,不能恢復,不能撤回。
通過查詢語句刪除文檔:
/ * 目前有4個name為james的文檔 */ # 刪除一個文檔$ret = $collect->deleteone(['name'=>'james']);printf($ret->getdeletedcount()); // 1# 刪除滿足條件的所有文檔$ret = $collect->deletemany(['name'=>'james']);printf($ret->getdeletedcount());刪除所有文檔(其實是整個集合都被刪除了):
$collect->drop();mongodb文檔的創(chuàng)建以及刪除,使用起來非常的簡單。
推薦:《mongodb視頻教程》