Mongo.setReadPref()

在本页面

Definition

  • Mongo. setReadPref(* mode tagSet *)
    • Mongo连接对象上调用setReadPref()方法,以控制 Client 端如何将所有查询路由到副本集的成员。 [1]

Note

您必须在连接对象上调用Mongo.setReadPref(),然后才能使用该连接检索文档以使用该读取首选项。

[1]要对一个或多个特定查询应用读取首选项,可以在迭代之前将cursor.readPref()应用于游标。有关详情,请参见cursor.readPref()

Parameters

ParameterTypeDescription
modestring下列read preference模式之一:primaryprimaryPreferredsecondarysecondaryPreferrednearest

tagSet文档数组可选。 tag set用于将读取定向到具有指定标签的成员。如果使用读取首选项模式primary,则tagSet不可用。
有关详细信息,请参见Tag Set

Mongo.setReadPref()不支持maxStalenessSeconds选项的读取首选项。

Examples

指定读取首选项模式

以下操作将读取首选项mode设置为将读取目标为次要成员。这隐含地允许从第二层读取。

db.getMongo().setReadPref('secondary')

指定读取首选项标签集

要使用特定标签定位次级标签,请包含标签集数组:

db.getMongo().setReadPref(
   "secondary",
   [
      { "datacenter": "B" },    // First, try matching by the datacenter tag
      { "region": "West"},      // If not found, then try matching by the region tag
      { }                       // If not found, then use the empty document to match all eligible members
   ]
)

在辅助选择过程中,MongoDB 尝试首先查找带有datacenter: "B"标签的辅助成员。

  • 如果找到,则 MongoDB 会将符合条件的次级限制为带有datacenter: "B"标签的次级,并忽略其余标签。

  • 如果未找到,则 MongoDB 尝试使用"region": "West"标签查找辅助成员。

  • 如果找到,则 MongoDB 会将合格的次级限制为带有"region": "West"标签的次级。

    • 如果未找到,则 MongoDB 将使用任何合格的辅助数据库。

有关详情,请参见标签匹配 Sequences