麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

MongoDB CRUD操作中的插入實例教程

2020-10-29 18:40:20
字體:
來源:轉載
供稿:網友

溫習了MongoDB的插入操作,主要使用PHP語言實踐。

目的

  • 理解官方shell和PHP SDK操作的差異
  • 以MySQL的思維理解MongoDB的shell,感覺差異還是很大的
  • 理解有多少種插入操作,以及差異點
  • 重點理解異常操作,如何看官方文檔

mongoDB shell

insertMany()、insert()、insertOne()三個方法大體上是差不多的,insertMany()相當于批處理,insertOne()是插入當個,這兩個函數返回的對象沒有明確指示,insert()相當于批處理,如果插入的是單個文檔,返回的是WriteResult對象,如果是多個文檔返回BulkWriteResult對象(真正的批量操作)。

如果產生異常,則會返回writeConcernErrors和writeErrors兩種錯誤,有兩個細節。

如果是批量插入,ordered是true,則遇到一個錯誤,后面就不返回了,反之則會繼續運行,不過最終都會拋出異常。

其次遇到異常就不會返回_ids,這一點覺得特別讓人難以理解,若何知曉插入了那些ID?

再次強調,對于MongoDB來說,只能保證單個文檔插入是原子性的。另外MongoDB插入的文檔不存在,則會自動插件文檔。

db.collection.insertMany(  [ <document 1> , <document 2>, ... ],  {   writeConcern: <document>,   ordered: <boolean>  })

PHP SDK

各個語言SDK和官方SHELL是差不多的,看的時候可以對照著看。

對于insertMany函數來說,如果處理正常返回的是MongoDB/InsertManyResult對象,它實際上是MongoDB/Driver/WriteResult 擴展的包裝。

如果遇到異常,可以通過 MongoDB/Driver/Exception/WriteException::getWriteResult 擴展方法獲取,它返回的實際上也是MongoDB/Driver/WriteResult對象。該對象的getWriteConcernError、getWriteErrors函數可以獲取具體的錯誤信息,從而決定程序如何處理。

對于異常來說,還有其他錯誤類型,比如MongoDB/Exception/InvalidArgumentException、MongoDB/Driver/Exception/RuntimeException。

最后通過一個例子來說明:

$obj = $collection->insertMany(  [   [      '_id' => "5f03014f73efc304f72dc6e2",      'email' => '[email protected]',    ],    [      'username' => 'test',      'email' => '[email protected]',    ]  ],[ "ordered"=>false]  );  $obj->getInsertedCount();  $obj->getInsertedId();} catch (/MongoDB/Exception/InvalidArgumentExceptio $e) {} catch (/Exception $e) {  $obj = $e->getWriteResult();  $data_1 = $obj->getWriteErrors();  $data_2 = $obj->getInsertedCount();  $data_3 = $obj->getUpsertedIds();}

整體上和官方文檔描述沒有太大的差異。

參考:

  • https://www.php.net/mongodb-driver-writeexception.getwriteresult
  • https://www.php.net/class.mongodb-driver-writeresult
  • https://docs.mongodb.com/manual/reference/method/db.collection.insertMany/
  • https://docs.mongodb.com/php-library/v1.4/reference/method/MongoDBCollection-insertMany/

總結

到此這篇關于MongoDB CRUD操作中的插入的文章就介紹到這了,更多相關MongoDB CRUD操作插入內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人影片在线免费观看 | 久久九九热re6这里有精品 | 久久综合入口 | 国产毛片在线 | 欧美国产成人在线 | 国产亚洲精品久久久久久久久久 | 日本在线不卡一区二区三区 | 日韩每日更新 | 久久久久久久久久久亚洲 | chengrenzaixian| 欧美 日韩 三区 | 91久久精品一二三区 | 久久久久久久久久美女 | 韩国精品视频在线观看 | 国产亚洲精品久久久久久网站 | 午色影院 | 国产精品午夜未成人免费观看 | 中文字幕在线播放视频 | 国产91中文字幕 | 久色视频 | 91九色视频观看 | 欧美黑大粗硬毛片视频 | 久久精品视频一区二区三区 | 一级黄色免费观看 | 97人操| 国产精品久久久久久久久久 | 黄色免费av网站 | 午夜网站视频 | 最近免费观看高清韩国日本大全 | 国产精品午夜未成人免费观看 | 老子午夜影院 | 国产亚洲精品成人 | 桥本有菜免费av一区二区三区 | av免费在线不卡 | 作爱在线观看 | 黄色片网站免费观看 | 欧美一区在线观看视频 | 中国精品久久 | 国产亚洲美女精品久久久2020 | 激情久久一区二区 | 极品国产91在线网站 |