![](/img/trans.png)
[英]How to set MongoDB ReadPreference in Spring MVC's contextConfigLocation
[英]Jongo MongoDB: How to specify a default ReadPreference
我知道我可以使用<collection>.withReadPreference(primaryPreferred()).find(...)
為每個查詢設置readPreference。 但是,我希望將全局默認readPreference設置為在可能的情況下使用“ nearest”,然后在必要時能夠為單個查詢覆蓋此默認值。 有沒有可能/首選的方法來使用Jongo?
編輯:由於MongoClient().getDB()
是使用MongoClient().getDB()
初始化的,因此是否適合使用指定ReadPreference的選項來初始化我的MongoClient? 我想我要問的是-如果我這樣做,這些設置是否會延續並應用到Jongo中,或者是否有其他方法可以直接在Jongo中進行處理?
提前謝謝。
可能在提出問題之前應該已經嘗試過,但是我將為以后可能遇到此問題的任何人提供答案。 簡短的答案是-是的,通過使用MongoClientOptions對象的MongoClient進行設置將繼承到Jongo。
具體來說,我在構建選項的方法中有這樣的東西(使該示例比為清晰起見而更加冗長):
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的次要成員中讀取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.