Java Jongo MongoDB:如何指定默认的ReadPreference
我知道我可以使用Java Jongo MongoDB:如何指定默认的ReadPreference,java,mongodb,mongodb-java,jongo,Java,Mongodb,Mongodb Java,Jongo,我知道我可以使用.withReadPreference(primaryPreferred()).find(…)为每个查询设置readPreference。但是,如果可能的话,我更愿意将全局默认readPreference设置为使用“最近的”,然后在必要时能够覆盖单个查询。使用Jongo是否有可能/首选的方法 编辑:由于Jongo是使用MongoClient().getDB()初始化的,因此是否适合使用指定ReadPreference的选项初始化我的MongoClient?我想我要问的是——如果我
.withReadPreference(primaryPreferred()).find(…)
为每个查询设置readPreference。但是,如果可能的话,我更愿意将全局默认readPreference设置为使用“最近的”,然后在必要时能够覆盖单个查询。使用Jongo是否有可能/首选的方法
编辑:由于Jongo是使用MongoClient().getDB()
初始化的,因此是否适合使用指定ReadPreference的选项初始化我的MongoClient?我想我要问的是——如果我这样做,这些设置会延续并应用于Jongo内部,还是有其他方法直接在Jongo中处理
提前感谢。可能在提问之前就应该尝试一下,但我将为将来可能有此问题的任何人提供答案。简单的回答是-是的,使用MongoClientOptions对象通过MongoClient设置它将转到Jongo 具体来说,我在构建选项的方法中使用了类似的内容(为了本例的清晰性,我将其设置得比我必须的更详细): 然后您可以实例化一个
新的MongoClient(新的服务器地址(…),this.getOptions())
并使用该客户端实例获取数据库引用,该引用最终用作实例化Jongo的参数
很明显,我这样做的原因是能够读取MongoDB ReplicaSet的辅助成员,前提是这些成员具有最低的延迟
protected MongoClientOptions getOptions(){
MongoClientOptions mClientOpts;
Builder mClientOptionsBuilder = new MongoClientOptions.Builder();
mClientOptionsBuilder.readPreference(ReadPreference.nearest());
mClientOpts = mClientOptionsBuilder.build();
System.out.println("[MongoConfig]: " + mClientOpts.toString());
return mClientOpts;
}