使用mongoose创建动态模式

sri*_*ram 5 mongoose mongodb node.js

我是Node js和Mongoose模块的新手.我正在尝试创建一个模式,其中有一些必需的字段,而另一些则可以是动态的.

我已经习惯strictfalse.我的代码看起来像这样:

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;
})
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我只得到vmProfile保存,而不是otherKey,DB看起来像这样:

{ "vmProfile" : "required value", "_id" : ObjectId("53364a5a5cd71a76122f0a8a"), "__v" : 0 }
Run Code Online (Sandbox Code Playgroud)

在哪里我犯了错误.

Wir*_*rie 1

来自猫鼬文档

注意:无论架构选项如何,架构中不存在的实例上设置的任何键/值都将始终被忽略。

您可以在创建模型实例时设置该值:

var task = new Task({'otherKey', 'some value'});
Run Code Online (Sandbox Code Playgroud)

您还可以将临时值放在混合子文档类型下。