这篇具有很好参考价值的文章主要介绍了【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》 文章来源:https://www.toymoban.com/news/detail-673823.html { " _id " : " 123 ", " blog_cont " : " abc123 ", " other " : " hello world!" } 文章来源地址https://www.toymoban.com/news/detail-673823.html |
到了这里,关于【sql】MongoDB 新增 高级用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!