Javascript 如何在现有MongoDB数据库中添加新值,即使它';未在原始模型中指定
我有一个相当普通的数据库来存储你的普通数据,比如电子邮件和用户名 我正在使用Node.JS和Mongoose/MongoDB创建这个数据库/后端。我想让它成为未来的证明。目前,我有一个用户模型,其中的值我认为我只需要,但是,我知道,事实上,我以后必须将值添加到用户的数据库中(模型中没有指定) 显然,由于用户已经使用该模型创建,我不想弄乱他们的数据。当用户发出请求时,我使用该模型通过其ID搜索用户,但随后我只想在JSON文档中添加一个值和一些数据。要添加的数据可以是JSON数据的根,也可以是JSON文档中的嵌套值,因此我想知道如何同时做到这两个方面 根据当前模型,我的数据结构如下:Javascript 如何在现有MongoDB数据库中添加新值,即使它';未在原始模型中指定,javascript,node.js,database,mongodb,mongoose,Javascript,Node.js,Database,Mongodb,Mongoose,我有一个相当普通的数据库来存储你的普通数据,比如电子邮件和用户名 我正在使用Node.JS和Mongoose/MongoDB创建这个数据库/后端。我想让它成为未来的证明。目前,我有一个用户模型,其中的值我认为我只需要,但是,我知道,事实上,我以后必须将值添加到用户的数据库中(模型中没有指定) 显然,由于用户已经使用该模型创建,我不想弄乱他们的数据。当用户发出请求时,我使用该模型通过其ID搜索用户,但随后我只想在JSON文档中添加一个值和一些数据。要添加的数据可以是JSON数据的根,也可以是JSO
user:
{
username: "",
email: "",
isVerified: "",
password: "",
hub: {
isSetup: true,
swVersion: 0.0`
}
}
更新现有数据的代码(在下面的示例中,我将嵌套JSON的-'hub'值'isSetup'更新为true:
User.update({_id: req.user.id}, {$set: { "hub.isSetup" : true}})
.then((data) => {
return res.json({message: data});
})
.catch(err => {
// log.error(err);
return next({message: 'Error updating User.'});
});
如何向数据库中的现有文档添加数据(如上所述),而不锁定用于搜索用户的模型,该模型为“用户”……使用:user.update(……)
正如我在测试和搜索谷歌时发现的那样,我只能在模型指定的情况下将数据添加到数据库中——我不想这样做
谢谢您需要的是严格模式选项
如果将其指定为false,则可以添加任何您喜欢的内容。在代码中,我在哪里指定strict选项?当我在脚本中声明模型时,还是在模型本身中?显然,它在默认情况下也是启用的,而在我的测试中不是这样。它在默认情况下是启用的,因此您必须针对您的情况禁用它。在指向他告诉你,你看到一个具体的例子,告诉你把它放在哪里。
newschema({..},{strict:false})