是否有一种通过变量模型名称创建集合的方法?我尝试过:
printf
但是它返回“ TypeError:group1.create不是函数”。
谢谢
答案 0 :(得分:1)
您可能想使用Mongoose模型而不是其名称。您可以使用mongoose.model(group1)
检索模型,并可以使用create
。
假设您已经使用各自的模式创建了模型,则可以执行以下操作:
var group1 = req.body.post.group;
var groupModel = mongoose.model(group1);
groupModel.create(req.body.post, function(err, newSunnah){
if(err){
console.log(err);
} else {
res.redirect("/view");
}
});
答案 1 :(得分:0)
查看有关models的Mongoose ODM文档。 group1
不仅仅是集合或模型名称,它是一个实际的模型,负责从底层MongoDB数据库创建和读取文档。所以,就像
var Model = mongoose.model('Model', <-YOUR-SCHEAMA->);
Model.create({}, function(error, doc) {
....
});
因此,可能的方法是将模型存储在数组中,然后动态地传递数组名称。
var models = [];
models['Sunnah'] = mongoose.model('Sunnah', <-YOUR-SCHEAMA->);
models['XYZ'] = mongoose.model('XYZ', <-YOUR-SCHEAMA->);
app.post("/post", function(req, res){
...
models[group1].create(req.body.post, function(err, newSunnah){
....
});
...
});