mongodb插入詳解

db.getCollection("test").insert(
{
  name :"<c 語音》",
  bookprice:"33.2",
  adddate:"2017-10-l",
  allow:"true",
  baseinf:{
      ISBN:"l83838388",
      press: "清華大學出版社"
  },
  tags: ["good","book","it","program"]
});



一次插入多條:

db.getCollection("test").insert(
  [
      {item: "小學生教材", name :"《小學一年級語文(上冊)》", price:12},
      {item: "小學生教材", name :"《小學二年級數學(上冊)》", price:13},
      {item: "初中生教材", name :"《初中一年級物理(上冊)》", price:14},
      {item: "初中生教材", name :"《初中二年級化學(上冊)》", price:15}
  ]
);


(使用insert 命令一次性插入多條文檔會比一條一條地插入省肘,這在大數據環境下是必須考慮的問題。多條文檔一次性插入,利用了insert 的原子性事務特徵,保證所有插入文檔要麼插入成功,要麼不成功)

有序插入多條文檔

db.getCollection("test").insert(
  [
      {_id:10, item: "小學生教材", name :"《小學一年級語文(下冊)》", price:12},
      {_id:11, item: "小學生教材", name :"《小學二年級數學(下冊)》", price:13},
      {_id:12, item: "初中生教材", name :"《初中一年級物理(下冊)》", price:14},
      {_id:13, item: "初中生教材", name :"《初中二年級化學(下冊)》", price:15}
  ],
  {ordered:  true}
);


(假設在test.test集合裏已經有二id: l l "的一條文檔記錄。那麼在執行上述命令時,命令執行將失敗。也就是一條文檔在ids相同的情況下不能重複插入。在ordered:true時,一條都不插入。在ordered:false時,除了出錯記錄外,其他記錄繼續插入。)

自定義寫出錯確認級別(含inse口命令出錯返回對象顯示)

db.getCollection("test").insert(
  {
      _id:1, item: "小學生教材", name :"《小學一年級語文(下冊)》", price:12
  },
  {writeConcern: { w:"majority", wtimeout: 5000 }}
);


(5000 毫秒。假設在多服務器插入該條文檔命令時,因網絡擁堵原因,超過5 秒未完成命令操作。該命令將放棄執行,並返回一個出錯對象內容)

簡化插入命令
兩個插入命令:
db.collection.insertOne() //一次性插入一條文檔命令(該命令與insert 的區別,可以讓程序員確保插入的是一條文檔,而不能做多文檔操作處理。)
db.collection. insertMany() //一次性插入多條文檔命令(顯然insertOne()和insertMany()是爲程序員偷懶準備的,事實上,它們可以更好地減少程序插入文檔的出錯率,並提高編程效率,在實際軟件項目中是鼓勵使用的。)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章