【发布时间】:2020-04-23 17:14:31
【问题描述】:
我们正在开发一个使用 mongodb 作为数据库的 Web 应用程序。我们的应用程序是关于现场管理解决方案的。
因此,在我们的应用程序中,数据会不断变化,例如,管理员可能想要将新字段添加到“员工”模式或将其删除,应用程序中的许多其他模式也是如此。
假设,在我们启动应用程序后,我们可能会引入一个新服务,我们希望将其添加到我们的数据库中,但是,这里所需的字段与以前的服务不同,并且在事务模式中我们可能想要删除或添加一个新的领域。
下一个层次是我们在前端有一个模式构建器,我们可以根据需求创建、编辑和删除新模式,而不是更改代码,它必须是动态的。现在我应该如何在不重新启动和删除数据库的情况下处理生产服务器中的这些更改。 架构构建器也会有关系数据。
mongoose中如何处理具有动态模式和中间件功能的关系数据?
另外,我在 MongoDB 文档中看到,在生产模式下,我们将禁用 autoIndex。那么有什么替代方法。
同样在架构中,有时我们可能必须根据要求更改 SchemaOptions,例如:unique, minLength, maxLength, requried, etc.,。
我尝试了很多方法来实现这一点,但我无法找到一种正确的方法。 dropIndex 不起作用,createIndex 不起作用。
每当我对架构进行更改时,我都必须删除数据库或重新启动服务器。
另外,在我将 100 个文档保存到集合中,其中一个字段为 false 唯一,如果我将 unique 更改为 true,如何处理以前保存为 false 的唯一文档?
谁能给我最好的实施示例? 猫鼬可以做我的工作吗?或者我应该在没有猫鼬的情况下使用 JOI 和 MongoDB Driver for Nodejs?
谢谢。
【问题讨论】:
-
好的,你的问题有多个问题,而且你不需要提供有问题的Skype,因为这里用户通常不会编写完整的代码,他们解决了几个问题(也许开始讨论聊天),请用特定问题更新您的问题(否则此问题很有可能被关闭或搁置)或仅在之前未回答的情况下提出多个问题:-)
标签: node.js database mongodb mongoose database-design