当前位置:首页 >> 硬件技术 >> 【sql】MongoDB 新增 高级用法,lg kv800

【sql】MongoDB 新增 高级用法,lg kv800

cpugpu芯片开发光刻机 硬件技术 1
文件名:【sql】MongoDB 新增 高级用法,lg kv800 【sql】MongoDB 新增 高级用法 【sql】MongoDB 新增 高级用法




批量插入数据, 遇到错误跳过并继续执行

方案一

ordered:false

使用场景:

   1: 数据存在时则跳过插入

//批量插入 db.res_phone.insertMany(     [         {"_id":1, "phone":10086},         {"_id":2, "phone":10010},         {"_id":3, "phone":10000},     ],     {          //遇到错误是否中断  false遇到错误会跳过 继续执行          ordered:false     } );  


方案二

update里有个参数 ‘$setOnInsert' 可以实现”存在则不执行”的功能,可见 $setOnInsert 官方文档。

示例:

起始数据:

> db.Blog.insert({"_id":"123456", "blog_cont":"abcdef", "title":"《My Test》"})

> db.Blog.find()

{ "_id" : "123456", "blog_cont" : "abcdef", "title" : "《My Test》" }

加入相同 ID 的日志:

> db.Blog.update({"_id":"123456"}, {$setOnInsert:{"blog_cont":"abc123", "other":"hello world!"}}, {upsert:true})

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })

>

> db.Blog.find()

{ "_id" : "123456", "blog_cont" : "abcdef", "title" : "《My Test》" }

加入不同 ID 的日志:

> db.Blog.update({"_id":"123"}, {$setOnInsert:{"blog_cont":"abc123", "other":"hello world!"}}, {upsert:true})

WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : "123" })

>

> db.Blog.find()

{ "_id" : "123456", "blog_cont" : "abcdef", "title" : "《My Test》"

{ "_id" : "123", "blog_cont" : "abc123", "other" : "hello world!" }

如果某些内容想更新的话(例如更新 title )可以用 ‘$set':

> db.Blog.update({"_id":"123456"}, {$setOnInsert:{"blog_cont":"abc123", "other":"hello world!"}, $set:{"title":"《New Title》"}}, {upsert:true})

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

>

> db.Blog.find()

{ "_id" : "123456", "blog_cont" : "abcdef", "title" : "《New Title》

{ "_id" : "123", "blog_cont" : "abc123", "other" : "hello world!" }


协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接