如何dynamic创buildmongoose模式?

我有一个应用程序,与mongodbmongoosenode.js上工作。 我的应用程序只是发送/删除/编辑表单数据,为此,我有这样的mongoose模型:

var mongoose = require('mongoose'); module.exports = mongoose.model('appForm', { User_id : {type: String}, LogTime : {type: String}, feeds : [ { Name: {type: String}, Text : {type: String}, } ] }); 

而且工作得很好!

现在,我想添加一个函数的forms,以便用户可以添加一个字段(或字段),并在其中input文本并张贴。 在客户端创builddynamicfunction是没有问题的,但是我明白我的mongoose.model必须正确的结构化。 我的问题是:如何将variables值(dynamic创build的表单数据名称及其文本)添加到mongoose模式?

我看到,使用'严格:假'和'Schema.Types.Mixed'是build议,但我不明白..我曾尝试:

 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var feedSchema = new Schema({strict:false}); module.exports = mongoose.model('appForm', feedSchema); 

有小费吗? 提前致谢!

       

网上收集的解决方案 "如何dynamic创buildmongoose模式?"

strict: false选项作为第二个参数提供给Schema构造函数,将其应用于现有的模式定义:

 var appFormSchema = new Schema({ User_id : {type: String}, LogTime : {type: String}, feeds : [new Schema({ Name: {type: String}, Text : {type: String} }, {strict: false}) ] }, {strict: false}); module.exports = mongoose.model('appForm', appFormSchema); 

如果您想要将feeds完全模式化,那么您可以使用Mixed

 var appFormSchema = new Schema({ User_id : {type: String}, LogTime : {type: String}, feeds : [Schema.Types.Mixed] }, {strict: false}); module.exports = mongoose.model('appForm', appFormSchema);