【发布时间】:2015-07-28 16:00:53
【问题描述】:
在使用 MongoDB 驱动程序(用于 Node.js)的应用程序中,我列出了 3 个数据库:db-01、db-02 和 db-03。
我向副本集添加了一个新数据库:db-04。
意外地,db-04 数据库被选为新的主数据库。
应用程序是否仍然可以写入,或者我应该在应用程序的 MongoDB 驱动程序配置的主机列表中列出 db-04?
【问题讨论】:
标签: mongodb
在使用 MongoDB 驱动程序(用于 Node.js)的应用程序中,我列出了 3 个数据库:db-01、db-02 和 db-03。
我向副本集添加了一个新数据库:db-04。
意外地,db-04 数据库被选为新的主数据库。
应用程序是否仍然可以写入,或者我应该在应用程序的 MongoDB 驱动程序配置的主机列表中列出 db-04?
【问题讨论】:
标签: mongodb
我假设“数据库”是指“成员”或“节点”。每个副本成员不能拥有一个不是副本集的数据库。我会假设你的意思是成员。
如果列表中有可用的成员,那么是的,MongoDB 驱动程序将使用副本集的任何成员来了解整个集合。因此,即使您没有在代码中显式连接到主节点,它仍然会通过在您连接到的节点上调用 isMaster 来寻找集合中的主节点。然后它将在应用程序中使用它。
【讨论】: