每个客户端的Nodejs mongoose模式

时间:2017-07-20 13:38:35

标签: json node.js mongodb mongoose schema

所以我想为我的用户提供上传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
}

有人能指出我正确的方向,为什么这不起作用?我怀疑是我使用错误类型的模式来创建模型。 如果有人对上述内容有了答案,那么您将如何在模式上创建方法,就像模式是静态的并且是应用程序代码库的一部分一样?

由于

0 个答案:

没有答案