温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mongodb插入详解

发布时间:2020-08-11 06:08:34 来源:网络 阅读:424 作者:梁十八 栏目:关系型数据库
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()是为程序员偷懒准备的,事实上,它们可以更好地减少程序插入文档的出错率,并提高编程效率,在实际软件项目中是鼓励使用的。)

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI