簡體   English   中英

Jongo MongoDB:如何指定默認的ReadPreference

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM