Javascript 如何在现有MongoDB数据库中添加新值,即使它';未在原始模型中指定

Javascript 如何在现有MongoDB数据库中添加新值,即使它';未在原始模型中指定,javascript,node.js,database,mongodb,mongoose,Javascript,Node.js,Database,Mongodb,Mongoose,我有一个相当普通的数据库来存储你的普通数据,比如电子邮件和用户名 我正在使用Node.JS和Mongoose/MongoDB创建这个数据库/后端。我想让它成为未来的证明。目前,我有一个用户模型,其中的值我认为我只需要,但是,我知道,事实上,我以后必须将值添加到用户的数据库中(模型中没有指定) 显然,由于用户已经使用该模型创建,我不想弄乱他们的数据。当用户发出请求时,我使用该模型通过其ID搜索用户,但随后我只想在JSON文档中添加一个值和一些数据。要添加的数据可以是JSON数据的根,也可以是JSO

我有一个相当普通的数据库来存储你的普通数据,比如电子邮件和用户名

我正在使用Node.JS和Mongoose/MongoDB创建这个数据库/后端。我想让它成为未来的证明。目前,我有一个用户模型,其中的值我认为我只需要,但是,我知道,事实上,我以后必须将值添加到用户的数据库中(模型中没有指定)

显然,由于用户已经使用该模型创建,我不想弄乱他们的数据。当用户发出请求时,我使用该模型通过其ID搜索用户,但随后我只想在JSON文档中添加一个值和一些数据。要添加的数据可以是JSON数据的根,也可以是JSON文档中的嵌套值,因此我想知道如何同时做到这两个方面

根据当前模型,我的数据结构如下:

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})