问题:我正在制作一个允许开发人员“注册”他们的Mongoose模式的Web服务 - 他们将在浏览器中创建JSON模式,然后将AJAX发送到我的服务器
所以我将使用提交的模式创建一个新的Mongoose模型,但现在我需要这个模式,即使我重新启动服务器也是如此。
我的代码类似于:
/* schemaObj is what you create a schema with,
for example { name: String, id: Number } */
registerSchema = function(model_name, schemaObj) {
desiredSchema = new Schema(schemaObj);
desiredCollection = 'collection_' + model_name;
mongoose.model(desiredCollection, desiredSchema, desiredCollection);
}
好的,所以这为我们创建了一个自定义模式的模型。
现在我的问题是,在运行此代码后,创建模型,然后重新启动服务器,新的集合/模型将不存在 - 因为显然只有在保存文档时才创建集合 - 而且我不会现在不想保存文档(因为我没有),只需创建一个集合。
问题:有没有办法使用这种“固定”架构创建集合 - 以便将来插入的文档应该严格符合架构?我基本上在SQL中寻找像create table
这样的东西。
答案 0 :(得分:3)
Whatever.collection.insert
答案 1 :(得分:0)
我也在开发像你这样的应用程序,用户可以在其中创建自己的模式,然后自动加载到Mongoose中。我创建了一个函数,用于在使用之前检查是否在Songoose中加载了模式,如果没有加载模式(例如在重新启动应用程序之后),则加载它。
我还没有文档,但您可以在此jslModel.js文件中找到我的实现。
搜索function loadMongooseModel
。