我对 Node js 和 Mongoose 模块非常陌生。我正在尝试创建一个架构,其中有一些必填字段,而其他一些字段可以是动态的。
我用strict
来false
。我的代码如下所示:
var mongoose = require('mongoose')
var db = mongoose.connect('mongodb://localhost/ets',function(err)
{
if(err) throw err
})
var Schema = mongoose.Schema
var Tasks = new Schema({vmProfile:String}, { strict: false });
mongoose.model('Task',Tasks)
var Task = mongoose.model('Task')
var task = new Task()
task.vmProfile = "required value"
task.otherKey = "something"
task.save(function(err)
{
if(err) throw err;
})
当我运行这个时,我只保存了 vmProfile
,而不是 otherKey
,数据库看起来像这样:
{ "vmProfile" : "required value", "_id" : ObjectId("53364a5a5cd71a76122f0a8a"), "__v" : 0 }
我在哪里犯了错误。
最佳答案
来自 Mongoose docs :
NOTE: Any key/val set on the instance that does not exist in your schema is always ignored, regardless of schema option.
您可以在创建模型实例时设置该值:
var task = new Task({'otherKey', 'some value'});
您也可以将临时值放在 mixed 下子文档类型也是如此。
关于node.js - 使用 Mongoose 创建动态模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726972/