码迷,mamicode.com
首页 > 数据库 > 详细

5.mongoDB更新操作

时间:2021-04-12 12:13:11      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:连接数据库   bsp   更新   ice   com   例子   new   字符   style   

 

updateOne()

一、起因:

由于个人域名申请了https,所以原本数据库的资源存在http字段的需要改为https,不然的话由于浏览器发现安全协议中混入了不安全的内容,将会拦截这些内容,所以我需要更新我的mongoDB数据库,本来直接想使用updateMany:

 

二、解决:

官方给的例子:

db.inventory.updateMany(
   { "qty": { $lt: 50 } },
   {
     $set: { "size.uom": "in", status: "P" },
     $currentDate: { lastModified: true }
   }
)
"P" 文档里面的"size.uom" 都更新为"in"
 

字段解释:

1.$set用于更新值:它会更新所有status为‘p‘的文档,把符合条件的文档里的‘size.com’设置为:in

2.$currentDate指定当前的数据需要改变的状态,需要设置为true,才能更新。

 

看似很简单,但是我需要先做字符串截取,比如:

 let origin = http://we-teach.humianyuan.cn/t1.jpg//原始值
 let alter = https://we-teach-space.humianyuan.cn/t1.jpg//更新后的值
 let afterAlter = https://we-teach-space+origin.slice(15)//所以需要使用字符段截取

 

但是mongo可能没有字符段截取的函数,因为我也刚刚学这个,不清楚它有没有,所以我无法对所有符合条件的值进行字符段截取,可能原生mongo可以使用正则匹配到每一个需要修改的值,然后再逐条更新,但是苦于我的正则表达式还是一窍不通,因为没有系统学过,后期得补上,所以正则匹配不适合我,所以菜鸡的我只能使用mongoose,连接数据库,再使用JS进行处理,JS使用filter遍历每一条数据,然后再逐条update:

例子:

Teachers.find(function(err,docs){
  if(err){
    console.log(err)
  }else{
    docs.filter(function(curentV){
      img = https://we-teach-space+ (curentV.avatar.slice(15));
      _id = curentV._id;
      // console.log(curentV.avatar)
      // console.log(img)
      Teachers.updateOne({
        $set: {avatar:img},
        $currentDate: { lastModified: true }
   }).exec(function(err,docs){
     if(err){
       console.log(err)
       console.log("出错啦")
     }else{
       console.log("更新状态:"+docs)
     }
   })
  })
 }
})

 

后续例子待补……

 

5.mongoDB更新操作

标签:连接数据库   bsp   更新   ice   com   例子   new   字符   style   

原文地址:https://www.cnblogs.com/hmy-666/p/14642165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!