mongodb 追加新字段,无效

发布于 2022-09-11 23:32:18 字数 498 浏览 16 评论 0

现有一张表,我想给这张表追加一个新字段,但是更新失败

以下是代码

 const data = { 
      token: token, // 这个字段表中没有
      update_time: new Date().getTime() // 这个字段表中有
    }
    const res = await User.update({ username: params.username }, { $set: data })

image.png

image.png

从输出的日志可以看出我更新的条件没有token字段

这是为什么呀!是我的语法不对吗?请各位大神赐教!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

带上头具痛哭 2022-09-18 23:32:18

是可以追加新字段的。
但是在mongoose里面,$set 只针对定义过的字段,即:User的model里面必须有个token字段,否则不会给文档添加新字段。

const User = mongoose.model('User', new mongoose.Schema({
  // ...
  token: String
}));

更新下model,此时$set就生效了,会给文档添加 token字段,也不会对原有文档造成影响。

如果用命令行执行更新语句是肯定生效的,只是mognoose对update封装处理过。

db.user.update({}, {$set: {token: "123"}}) // 用mongo命令执行必定是会添加上的
污味仙女 2022-09-18 23:32:18

各位大神,我想知道js的MongoDB是不是不可以在现有的文档中追加新字段呀,还是我的写法不对,请赐教!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文