当前位置: 首页 > news >正文

怎样登录柳州建设网站长沙百度网站优化

怎样登录柳州建设网站,长沙百度网站优化,自己开发手机app软件的步骤,做招聘图片的网站概述 Mongodb提供了多种方法向集合中插入数据 插入一条数据 db.collection.insertOne() 插入多个文档 db.collection.insertMany() 更新集合中不存在的文档数据#xff0c;指定{upsert: true}时插入数据 db.collection.updateOne() db.collection.updateMany() db.coll…概述 Mongodb提供了多种方法向集合中插入数据 插入一条数据 db.collection.insertOne() 插入多个文档 db.collection.insertMany() 更新集合中不存在的文档数据指定{upsert: true}时插入数据 db.collection.updateOne() db.collection.updateMany() db.collection.findAndModify() db.collection.findAndUpdate() db.collection.findAndReplace() db.collection.bulkWrite() _id字段 mongodb插入方法中对_id字段有一致的行为。当客户端插入数据没有指定_id字段时数据库自动添加一个ObjectId类型的_id字段作为主键。mongodb为集合的_id字段添加唯一键索引因此用户插入带有_id字段的文档时mongodb会对_id字段唯一性进行校验。数据成功插入后mongodb返回插入文档的id //向集合product插入一条没有id字段的文档 db.products.insertOne( { item: card, qty: 15})//返回插入成功并返回插入数据的id {acknowledged : true,insertedId : ObjectId(65966778d63bea6fd2f4b7a7) }//向集合product插入指定id字段的文档 db.products.insertMany([{_id:1, item: card, qty: 15},{_id:2, item: pen, qty: 15}, ] )//返回插入成功和插入数据的id {acknowledged : true,insertedIds : [ 1, 2 ] }//向集合products插入已存_id的数据 db.products.insertMany([{_id:2, item: bag, qty: 15} ] )//报错 writeErrors : [{index : 0,code : 11000,errmsg : E11000 duplicate key error collection: test.products index: _id_ dup key: { _id: 2 },op : {_id : 2,item : bag,qty : 15}}],原子性 Mongodb对单文档的操作是原子性的。包括单文档的插入更新和删除操作。而插入方法中的insertMany(), updateMany(),bulkWrite()方法操作多个文档的时并不是原子操作。这样会产生一个问题执行insertMany()方法倒地插入了多少条数据。 //这条语句插入多少条数据 db.products.insertMany([{_id:3, item: bag, qty: 15},{_id:4, item: ruler, qty: 10},{_id:4, item: cup, qty: 12},{_id:5, item: key, qty: 14} ] ) 回顾insertMany的语法 //insertMany的语法 db.collection.insertMany([document 1, document 2, ...],{writeConcern: document,ordered:boolean} ) 参数定义 参数名 类型 描述 document 文档类型 计划插入的文档数组 writeConcern 文档类型 可选参数指定数据提交方式缺省使用默认数据提交方式 ordered 布尔类型 是否按照数组中文档的顺序插入数据默认true 这里writeConcern参数稍后再提ordered参数会对报错的insertMany()方法结果产生不同的影响。当指定ordered为true或使用默认值时。Mongodb按照数组中文档的顺序逐一将数据插入集合。插入过程中出现错误时插入操作停止后面的数据不会被插入。当指定ordered为false时数据插入过程中出错时mongodb会继续插入后面的数据。 db.products.insertMany([{_id:3, item: bag, qty: 15},{_id:4, item: ruler, qty: 10},{_id:4, item: cup, qty: 12},{_id:5, item: key, qty: 14} ] )BulkWriteError({writeErrors : [{index : 2,code : 11000,errmsg : E11000 duplicate key error collection: test.products index: _id_ dup key: { _id: 4 },op : {_id : 4,item : cup,qty : 12}}],writeConcernErrors : [ ],nInserted : 2,nUpserted : 0,nMatched : 0,nModified : 0,nRemoved : 0,upserted : [ ] }) 返回结果中显示插入2条数据其中item: cup的数据因为主键冲突插入失败而_id:5的数据也没有插入 指定{ordered: false}重新执行插入 db.products.insertMany([{_id:3, item: bag, qty: 15},{_id:4, item: ruler, qty: 10},{_id:4, item: cup, qty: 12},{_id:5, item: key, qty: 14} ], {ordered: false } )BulkWriteError({writeErrors : [{index : 2,code : 11000,errmsg : E11000 duplicate key error collection: test.products index: _id_ dup key: { _id: 4 },op : {_id : 4,item : cup,qty : 12}}],writeConcernErrors : [ ],nInserted : 3,nUpserted : 0,nMatched : 0,nModified : 0,nRemoved : 0,upserted : [ ] }) 3条数据插入成功只有item: cup 因为主键冲突导致插入失败 这里没有使用mongodb的事务。mongodb的事务是原子性的当在mongodb事务中插入数据报错时数据都不会被插入。 writeConcern 现在来探讨一下writeConcern。 mongodb通过writeConcern定义了复制集中数据提交返回的方法。当指定writeConcern为majority时需要大于一般的复制集节点数据提交完成通知主节点后主节点才会将插入结果返回给客户端。如果从节点通知主节点的时间超过了wtimeout设定的时间数据插入时会报replication time out error。 //本案例可能无法再本地重现适当减少wtimeout时间尝试 db.products.insertMany([{ _id: 10, item: large box, qty: 20 },{ _id: 11, item: small box, qty: 55 },{ _id: 12, item: medium box, qty: 30 }],{ w: majority, wtimeout: 100 });WriteConcernError({code : 64,errmsg : waiting for replication timed out,errInfo : {wtimeout : true,writeConcern : { // Added in MongoDB 4.4w : majority,wtimeout : 100,provenance : getLastErrorDefaults}} }) 插入数量 每次插入操作插入文档的数量不能超过maxWriteBatchSize的限制。maxWriteBatchSize默认值是100000. 设置这样的限制避免了数据库插入超量报错。一些数据库连接驱动插入数据时会按照maxWriteBatchSize将插入数据分批插入。如插入200000条数据数据库驱动可能会分成两个插入操作每次插入100000条。 执行计划 insertOne() insertMany()方法不支持使用db.collection.explain()方法获取执行计划。 性能 向数据库插入大量随机数字段如hash值并在这些字段上有索引时插入性能可能会变差。批量插入随机数时构建更新索引会消耗大量的cpu和内存。因此插入这样的数据时建议预先删除集合上的索引插入完成后重新构建索引。或向一个没有索引的集合插入数据。
http://www.zqtcl.cn/news/490709/

相关文章:

  • 动漫做那个视频网站单网页网站如何做
  • 企业网站名是什么意思广州公共交易中心
  • 做网站那家好沈阳做网站公司哪家好
  • 现在做一个网站大概多少钱中国住房城乡建设部网站
  • 高端企业网站建设核心秦皇岛网站制作人才招聘
  • 网站制作花多少钱简历模板表格
  • 泰安专业网站开发公司网页设计师常逛网站
  • 百度收录万网空间的网站需要多久推广seo网站
  • 个体工商户可以做网站备案吗微信app下载安装官方版2023
  • 内贸在什么网站做做网站需要提供哪些信息
  • 物流网站怎么做推广网页程序开发语言
  • 静态网站跟动态网站开发的层次
  • 公司购买网站怎么做分录被k掉的网站怎么做才能有收录
  • 网页制作相关网站网络卖货平台有哪些
  • 国内网站都要备案吗快速做网站的软件
  • 遂宁市住房和城乡建设局网站自己的网站怎么做美工
  • 资阳网站建设公司中国菲律宾概念股
  • 网站优化报价wordpress 获取别名
  • 自适应网站如何做mip微信网站公司
  • 网站建设改版升级wordpress 艺术家
  • 百度怎么网站排名python做网站的开发
  • 淘宝 网站建设教程视频北京华夏建设有限公司网站
  • 网站公司的利润中国域名后缀
  • 梁山网站建设电话多语言网站建设
  • 网站建设的摘要做直播网站赚钱吗
  • 网站建设明细报价表模板永久免费云服务器无需注册
  • 扁平化网站设计方案大学生做的美食网站
  • wordpress前台打开速度20秒湖南正规竞价优化公司
  • 深度网营销型网站建设wordpress keywords
  • 企业官网快速建站框架物流网站源代码