所以我想为我的用户提供上传CSV的能力,并从中生成一个mongoose模式,我存储在该用户的数据库中。用户登录时,可以根据个人架构创建集合。使用generate-schema我可以创建一个json
架构,如下所示:
{
"_id" : ObjectId("596a872cd1e59c6135fa7b2e"),
"title" : "Product Set",
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"booktitle" : {
"type" : "string"
},
"bookid" : {
"type" : "string"
},
"bookauthor" : {
"type" : "string"
}
},
"required" : [
"booktitle",
"bookid",
"bookauthor"
],
"title" : "Product"
},
"$schema" : "http://json-schema.org/draft-04/schema#"
}
并将其存储在我的schema
集合中。一切都很好......
当我想根据该模式创建一个集合,并使用mongoose将数据存储在其中时,我试图从数据库中检索模式(可以工作),然后再进行
var generatedSchema = GenerateSchema.mongoose(response)
然后我用以下方法创建一个模型:
var Model = db.models.Product || db.model('Product', generatedSchema);
并从该模型中创建项目
var item = new Model({
"_id": new ObjectID(),
booktitle: 'The Godfather',
bookid: 'abc123',
bookauthor: 'Mario Puzo'
});
并保存:
item.save(function(err, response) { ... })
我没有收到任何错误,但是当我保存它时,我只是看到了收藏:
{
"_id" : ObjectId("5970b1a584d396d7a2241eba"),
"items" : {
"required" : []
},
"__v" : 0
}
有人能指出我正确的方向,为什么这不起作用?我怀疑是我使用错误类型的模式来创建模型。 如果有人对上述内容有了答案,那么您将如何在模式上创建方法,就像模式是静态的并且是应用程序代码库的一部分一样?
由于