如何动态创建mongoose架构?

时间:2017-07-20 11:30:41

标签: node.js mongoose schema

我是新手,并试图动态创建一个mongoose架构。

这是我的deo模型:

var mongoose=require('mongoose');
Schema=mongoose.Schema;
var deoSchema=new Schema({
     name: String
});
module.exports = mongoose.model('deo',deoSchema);

这是我如何保存它:

var deo = function () { };
deo.prototype.create = function (req, res) {
    var deo=new Deo(req.body);
    deo.save(function(err,doc){
        if(err){
            console.log('error occured..'+err);
        }
        else{
            res.json(doc);
        }
    });
}

现在我想尝试存储其他文件以将其存储在mongodb中并尝试使用{$ upsert = true},同时保存并编辑我的模型,如下所示

var mongoose=require('mongoose');
Schema=mongoose.Schema;
var deoSchema=new Schema({
     name: String,
     type:[Schema.Types.Mixed]
});
module.exports = mongoose.model('deo',deoSchema);

但无法保存,我该怎么做才能动态保存那些不在mongodb模式中的字段。

2 个答案:

答案 0 :(得分:2)

我试过了 this并按照以下方式编辑了我的架构,并按照表单

的要求传递了名称
var mongoose=require('mongoose');
Schema=mongoose.Schema;
var deaoSchema=new Schema(Schema.Types.Mixed, {strict: false});
module.exports = mongoose.model('deao',deaoSchema);

答案 1 :(得分:0)

就我而言,我只是编辑了一下。

const mongoose=require('mongoose');
Schema=mongoose.Schema;
const deaoSchema=new Schema(
    { type : Schema.Types.Mixed}, 
    {strict: false});
module.exports = mongoose.model('deao',deaoSchema);