首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jongo MongoDB:如何指定默认的ReadPreference

Jongo MongoDB:如何指定默认的ReadPreference
EN

Stack Overflow用户
提问于 2015-02-09 19:21:25
回答 1查看 335关注 0票数 0

我知道我可以使用readPreference为每个查询设置<collection>.withReadPreference(primaryPreferred()).find(...)。但是,如果可能的话,我希望设置一个全局默认的readPreference,以便使用“最近的”,如果有必要的话,可以重写单个查询。是否有一种使用Jongo的可能/首选的方法来做到这一点?

编辑:由于Jongo是使用MongoClient().getDB()初始化的,因此是否适合使用指定ReadPreference的选项初始化MongoClient?我想我要问的是-如果我这样做,这些设置会继续并应用在Jongo内部,还是有一种不同的方法直接在Jongo处理?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-09 21:23:13

也许应该先试一试,然后再问,但我会为将来可能有这个问题的人提供一个答案。简单的回答是-是的,使用MongoClient对象通过MongoClientOptions设置它将传递到Jongo。

具体来说,在构建选项的方法中,我有类似的内容(使其比本例中的清晰性更详细):

代码语言:javascript
复制
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;
}

然后,您只需实例化一个new MongoClient(new ServerAddress(...), this.getOptions());并使用该客户端实例获取数据库引用,该引用最终被用作实例化Jongo的参数。

要明确的是,我这么做的原因是能够从MongoDB ReplicaSet的辅助成员那里读取,如果/当这些成员可用时,这些成员的延迟最低。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28417598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档