MongoDB文檔的創(chuàng)建及刪除(php代碼實(shí)例)

注意,本文所有的代碼實(shí)例均以php代碼做演示。

安裝mongodb擴(kuò)展

擴(kuò)展包安裝地址:https://pecl.php.net/package/mongodb

下載最穩(wěn)定的版本,然后把擴(kuò)展包上傳到服務(wù)器上。

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

#?解壓 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  #?測(cè)試 php?-m?|?grep?mongodb

mongodb擴(kuò)展教程:https://docs.mongodb.com/php-library/current/reference/

使用phplib

composer?require?mongodb/mongodb

插入文檔

和Mysql類似,MongoDB插入文檔也能插入單條或多條。下面看插入單條:

$mongo?=?new?MongoDBClient(); $collect?=?$mongo->users->users; $collect->insertOne(['name'=>?'james',?'age'?=>?35]);

如果沒(méi)有聲明_id字段,該操作會(huì)自動(dòng)為新文檔創(chuàng)建一個(gè)_id字段。當(dāng)然,我們也可以手動(dòng)指定_id的值

$collect->insertOne(['_id'?=>?1,'name'=>?'james',?'age'?=>?35]);

該函數(shù)執(zhí)行成功返回 MongoDBInsertOneResult object,失敗則會(huì)拋出異常。

接下來(lái)看如何插入多個(gè)文檔:

$collect->insertMany([ ????[?'name'=>'paul',?'age'?=>?34], ????[?'name'=>'durant',?'age'?=>?31], ????[?'name'=>?'curry',?'age'?=>?31] ]);

需要注意的是,在批量插入的時(shí)候,如果其中有一個(gè)文檔插入失敗,后面的就不會(huì)繼續(xù)插入,但前面的會(huì)插入。

#?第一條會(huì)插入成功,第二條時(shí)插入失敗,后面的也不會(huì)繼續(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ò)誤能夠插入成功,但是該語(yǔ)句會(huì)拋出異常。如想忽略錯(cuò)誤,繼續(xù)程序的執(zhí)行,則需要去捕獲異常。

刪除文檔

注意:刪除是危險(xiǎn)操作,不能恢復(fù),不能撤回。

通過(guò)查詢語(yǔ)句刪除文檔:

/** ?*?目前有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)建以及刪除,使用起來(lái)非常的簡(jiǎn)單。

推薦:《MongoDB視頻教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊5 分享