MongoDB Java驱动程序readPreference二级/二级首选的mapreduce设置

时间:2018-08-01 19:20:35

标签: java mongodb mapreduce mongo-java-driver

我正在基于 mongo java驱动程序为mongo mapreduce 项目设置 readPreference

这里有一些问题。当mapreduce查询输出选项为 INLINE时(我使用REPLACE,因为我的文档结果超过16mb)。在这种情况下,我仍然可以使用ReadPreference.secondaryPreferred吗?我看到它在日志中不起作用(不是ping辅助数据库,而是主数据库)。想知道吗?

似乎这里有2个选项。

1与mongo服务器连接时。

    MongoClientOptions.Builder mongoClientOptionsBuilder = MongoClientOptions.builder().readPreference(ReadPreference.secondary())

2在您的查询调用中

 MapReduceCommand cmd = new MapReduceCommand(loan, $mapQuery,$reduceQuery,null,  MapReduceCommand.OutputType.REPLACE, builder.get())
            cmd.setReadPreference(ReadPreference.secondaryPreferred())

在3.0.4之前请注意Java mongo驱动程序,其中存在一些错误(https://jira.mongodb.org/browse/JAVA-1944

基于https://docs.mongodb.com/ecosystem/drivers/driver-compatibility-reference/#java-driver-compatibility

升级mongo java驱动程序

更新

好的,那是快速更新。

https://docs.mongodb.com/manual/reference/method/db.collection.mapReduce/ 在这里检查。 字符串或文档
指定映射归约运算结果的位置。您可以输出到集合,使用操作输出到集合或内联输出。在集合的主要成员上执行map-reduce操作时,您可以输出到集合。 在二级成员上,您只能使用嵌入式输出。

查看选项以获取更多信息。

因此,次要(副本集)不可以使用REPLACE

0 个答案:

没有答案