MongoDB不支持批量插入


mongodb的結構與關系型數據庫不同,它類似樹狀結構,可以很方便對每個分支進行操作,但它沒有像mysql那樣insert(value、value、value...)那樣的語法,也不支持transaction
所以mongodb不能批量插入數據,如果你要批量插入數據,可以在mongodb里寫一個循環,它支持for等語法。


因為MongoDB的底層就不支持這種操作。
從MongoDB的oplog模式中可以看出,MongoDB的每次op都是獨立執行的最小單元,因此,不會存在多個op組合成一個執行的情況。因此在各種API中都不會存在這種批量插入的操作。

某網友提到他的理解,覺得很有道理:
這里還是涉及到大家經常用到的傳統關系型數據庫和NoSQL的本質區別問題,NoSQL的每次操作都非常輕量級,小型化,除了數據的寫入外基本沒有多余的操作。
類比:MongoDB就是放東西(數據)時把東西扔入相應的櫃子(數據庫)即可,而MySQL則要保持與送東西人的溝通(雙向連接保持),東西的折疊整理分格存儲(有模式)。
MySQL的批量插入就是減少了溝通以及分格等過程,而MongoDB本身就不存在這些過程,因此MongoDB就不存在批量插入這個概念了。

 

我以前測驗用php進行批量向mongodb插入數據的代碼:

 

$conn = new Mongo();


$db = $conn->selectDB("test");//這里設置數據庫名稱

$collection = $db->mytable;//選擇表
/*
+----------------------------------------------------------------
批量插入數據,一次插入10萬條數據。把數字改掉就可以多插入些
+----------------------------------------------------------------
*/
$users = array();
for ($i = 0; $i<100000; $i++) {
  $users[] = array('username' => 'user'.$i, 'i' => $i);
}

$ok = $collection->batchInsert($users);

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM