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()是为程序员偷懒准备的,事实上,它们可以更好地减少程序插入文档的出错率,并提高编程效率,在实际软件项目中是鼓励使用的。)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。