将客户数据存储在两个数据库中
Posted
技术标签:
【中文标题】将客户数据存储在两个数据库中【英文标题】:Store customer data in two databases 【发布时间】:2019-07-16 11:46:19 【问题描述】:我想将客户数据从前端存储到数据库。现在,有两个数据库Master 和Child。我想知道如何将该文档存储到子数据库和主数据库中。我在前端使用 MongoDB 数据库、后端 Node Express 和 angular。如何在前端或后端解决这个问题?
【问题讨论】:
按照他们的建议使用 mongodb 副本集,而不是主从架构。 docs.mongodb.com/v3.4/core/master-slave 我认为副本集是针对同一个数据库的。上面忘记说了,我有两个不同架构的数据库。 永远不要将你的数据库暴露给前端。从 Express 服务器公开一个 API,以便 Angular 发布数据。使用 Express 服务器将数据保存到您的数据库中。 我们正在使用 API。但需要这些 api 在两个单独的服务器上的两个单独的数据库上工作。 【参考方案1】:如果您希望在 Master 内发生变化时有效地将写入复制到 Child 数据库,这可能是 Change Streams 的一个很好的用例。
这是您应该在后端处理的事情,因为您实际上是在发生更改时触发操作。有关如何使用 NodeJs 执行此操作的好文章,请参阅 this Medium post。
【讨论】:
更改流是每次写入时发生的事件。 OP 需要一个整体解决方案来写入特定的主节点并从辅助节点读取。此外,如果您需要扩展辅助节点,更改流也不是一个好的解决方案。以上是关于将客户数据存储在两个数据库中的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 数据库,我应该使用啥数据类型来存储护照号码?