首頁 > 資料庫 > MongoDB > 主體

MongoDB文件的建立及刪除(php程式碼實例)

齐天大圣
發布: 2020-08-21 13:25:42
原創
2440 人瀏覽過

注意,本文所有的程式碼實例都是以php程式碼做示範。

安裝MongoDB擴充功能

# #擴充包安裝位址:https://pecl.php.net/package/mongodb

下載最穩定的版本,然後把擴充包上傳到伺服器上。

# 解压
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 mongodb
登入後複製

mongodb擴充教學: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字段,該操作會自動為新文件建立一個_id字段。當然,我們也可以手動指定_id的值

$collect->insertOne(['_id' => 1,'name'=> 'james', 'age' => 35]);
登入後複製

該函數執行成功傳回 MongoDB\InsertOneResult object,失敗則會拋出例外。

接下來看如何插入多個文件:

$collect->insertMany([
    [ 'name'=>'paul', 'age' => 34],
    [ 'name'=>'durant', 'age' => 31],
    [ 'name'=> 'curry', 'age' => 31]
]);
登入後複製

要注意的是,在批次插入的時候,如果其中有一個文件插入失敗,後面的就不會繼續插入,但前面的會插入。

# 第一条会插入成功,第二条时插入失败,后面的也不会继续插入
$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]);
登入後複製

注意:上述遇到錯誤能夠插入成功,但是該語句會拋出異常。如想忽略錯誤,繼續程式的執行,則需要去捕獲異常。

刪除文件

#注意:刪除是危險操作,無法恢復,無法撤回。

透過查詢語句刪除文件:

/**
 * 目前有4个name为james的文档
 */
 
# 删除一个文档
$ret = $collect->deleteOne(['name'=>'james']);
printf($ret->getDeletedCount());  // 1

# 删除满足条件的所有文档
$ret = $collect->deleteMany(['name'=>'james']);
printf($ret->getDeletedCount());
登入後複製

刪除所有文件(其實是整個集合都被刪除了):

$collect->drop();
登入後複製

MongoDB文件的建立以及刪除,使用起來非常的簡單。


推薦:《

MongoDB影片教學

以上是MongoDB文件的建立及刪除(php程式碼實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板