将客户数据存储在两个数据库中

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 需要一个整体解决方案来写入特定的主节点并从辅助节点读取。此外,如果您需要扩展辅助节点,更改流也不是一个好的解决方案。

以上是关于将客户数据存储在两个数据库中的主要内容,如果未能解决你的问题,请参考以下文章

将 DateTime 与存储在数据库中的日期进行比较

我如何制作将数据存储在客户端数据库中的服务器端应用程序

将 CoreData 存储在 iCloud 中

Laravel 数据库,我应该使用啥数据类型来存储护照号码?

可以将 session_state 存储在客户端的本地存储中吗?

如何使用 GraphQL 的 Apollo 客户端将获取的数据存储到 Redux 的存储中