在说正事之前,我要推荐一个福利:(你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>),好了下面开始说正事:
现有一张表,我想给这张表追加一个新字段,但是更新失败
以下是代码
const data = {
token: token, // 这个字段表中没有
update_time: new Date().getTime() // 这个字段表中有
}
const res = await User.update({ username: params.username }, { $set: data })
从输出的日志可以看出我更新的条件没有token字段
这是为什么呀!是我的语法不对吗?请各位大神赐教!
###是可以追加新字段的。
但是在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命令执行必定是会添加上的
###各位大神,我想知道js的MongoDB是不是不可以在现有的文档中追加新字段呀,还是我的写法不对,请赐教!
郑重声明:本站部分内容转载自网络,版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们(QQ/微信153890879)修改或删除,多谢。