C# 我们可以在MongoDB中为副本集设置多个写关注点吗?

C# 我们可以在MongoDB中为副本集设置多个写关注点吗?,c#,.net,mongodb,replicaset,nosql,C#,.net,Mongodb,Replicaset,Nosql,比如说,我已经将一个包含3个成员的副本集的写关注点设置为w=多数。如果副本集的一个成员宕机,那么在这种情况下,写问题是否可能发生变化 我阅读了MongoDB:权威指南以及MongoDB文档,但没有找到任何东西。但它似乎是可以实现的。您想实现什么?如果一个节点出现故障,系统仍然可以进行写操作,其中2/3的节点处于运行状态,并且可以选择一个主节点,多数节点表示两个可用节点中的2个,这是一种合理的复制方式。为什么要根据节点的可用性更改写关注点?我认为问题在于OP缺少大多数或大多数写关注点设置的正确含义

比如说,我已经将一个包含3个成员的副本集的写关注点设置为w=多数。如果副本集的一个成员宕机,那么在这种情况下,写问题是否可能发生变化


我阅读了MongoDB:权威指南以及MongoDB文档,但没有找到任何东西。但它似乎是可以实现的。

您想实现什么?如果一个节点出现故障,系统仍然可以进行写操作,其中2/3的节点处于运行状态,并且可以选择一个主节点,多数节点表示两个可用节点中的2个,这是一种合理的复制方式。为什么要根据节点的可用性更改写关注点?我认为问题在于OP缺少大多数或大多数写关注点设置的正确含义@user2278764:多数总是根据成员的名义数量而不是有效数量计算。副本集完全知道一个成员已停机。我知道大多数是如何工作的。我想要完成的是:我的副本集中有三个成员。让我们称他们为擎天柱、大黄蜂和棘轮。我希望擎天柱是我的主要出发点,而大黄蜂和棘轮将是次要的。现在,我希望在返回getLastError之前,Optimus和Bumblebee都能确认写操作。我可以通过为Optimus和Bumblebee上的标签创建getLastErrorMode来实现这一点。但是,如果Optimus倒下,我希望能够继续向新的primary写入数据,这不会发生,因为Optimus已关闭。很抱歉,我第一次问这个问题时使用了不正确的上下文。我想进行此设置,以便我可以将读取首选项设置为SecondaryPreferred,并为Bumblebee添加标记。所以我的应用程序在从Bumblebee读取数据时不会读取过时的数据。