0
我目前正在開發一個需要處理數據存儲的方式具有很高通用性的項目。假設原則是用戶可以定義一個定製的模型,然後用基於他定義的模型的數據填充數據庫。mongodb與nodejs中的多態模型
到目前爲止,我的解決方案是將模型的定義保存在MongoDB集合中,然後使用DocumentFactory從其中生成模型。
DocumentFactory: function(description) {
var attributes = {};
description.forEach(function(element, index){
attributes[element.name] = {
type: "string",
required: true
};
});
var model = mongoose.Schema(attributes);
return mongoose.model('Meta', model);;
}
我的問題是,我可以把「元模型」只有一次,以後我會趕上一個錯誤: OverwriteModelError:無法覆蓋Meta
模型編譯一次
實際上,模型編譯由MongoDB一勞永逸。我沒有找到覆蓋它的方法。
我看到2個解決方案:
- 找到一種方法來定義模型不編譯它。這個解決方案可能是最好的,所以我可以使用mongo驗證系統。
- 爲模型創建一個獨特的名稱,但它似乎是一個非常糟糕的解決方案,所以我可能會有成千上萬的模型。
任何想法? 在此先感謝