如何dynamic创buildmongoose模式?
我有一个应用程序,与mongodb和mongoose在node.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);
有小费吗? 提前致谢!
将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);