gpt4 book ai didi

javascript - “存储” Mongoose 模式/模型(不是文档)以供将来使用

转载 作者:可可西里 更新时间:2023-11-01 09:37:43 25 4
gpt4 key购买 nike

问题:我正在制作一个 Web 服务,允许开发人员“注册”他们的 Mongoose 模式 - 他们将在浏览器中创建 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 的东西。

最佳答案

  1. 您不能在 Mongo 中创建具有固定架构的集合。这显然是一个 feature .
  2. 只要您在尝试使用新架构之前已将其注册到 Mongoose,它就应该可以正常工作,无论该集合是否存在。
  3. 无论如何,Mongoose 模式只是某种程度的强制执行,您仍然可以通过下降到 native 驱动程序来偷偷摸摸的东西,这真的很容易。 Whatever.collection.insert
  4. 您需要在每次启动服务器时重新注册您的模式

关于javascript - “存储” Mongoose 模式/模型(不是文档)以供将来使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8638255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com