使用 mongoose 通过 update 方法向 mongodb 中的现有文档添加新字段

新手上路,请多包涵

我正在尝试在 node.js 中使用 mongoose 更新 mongodb 文档

当字段存在时,更新工作,但如果字段不存在,更新将不起作用。

我想在文档中添加新字段。

MongoDB 查询( $set )正在工作:

 db.getCollection('users').update({ 'uid': 'uid' }, { $set: { 'vehicle_status': 'bike' } })

但是在猫鼬中完成时它将不起作用。使用 $set 不会添加字段。

 User.update({ uid: uid }, { $set: { vehicle_status: vehicleSatus } }, { multi: true })

原文由 sabper 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 930
2 个回答

试试下面的代码:

 User.updateOne(
     {uid: 'uid'},
     {vehicle_status : 'vehicleSatus' },
     {multi:true},
       function(err, numberAffected){
       });

此外,请确保将 vehicle_status 添加到架构中。

原文由 Tim 发布,翻译遵循 CC BY-SA 4.0 许可协议

根据新场景,始终使用 { upsert:true }。

upsert - 如果设置为 true 并且没有与查询匹配的记录,则替换对象将作为新记录插入。

    user.updateOne(
                 { email: req.body.email },
                 { $set: { name: 'Aaakash'}},{upsert:true}).then((result, err) => {
                    return res.status(200).json({ data: result, message:"Value Updated" });
                })

原文由 Nagender Pratap Chauhan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题