db.getCollection("test").insert( { name :"<c 語音》", bookprice:"33.2", adddate:"2017-10-l", allow:"true", baseinf:{ ISBN:"l83838388", press: "清華大學出版社" }, tags: ["good","book","it","program"] });
一次插入多條:
php
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()是爲程序員偷懶準備的,事實上,它們能夠更好地減小程序插入文檔的出錯率,並提升編程效率,在實際軟件項目中是鼓勵使用的。)
服務器