2015-02-09 2 views
0

Я знаю, что я могу установить readPreference для каждого запроса, используя <collection>.withReadPreference(primaryPreferred()).find(...). Тем не менее, я бы предпочел установить глобальное значение readPreference по умолчанию, чтобы использовать «ближайшее», если это возможно, и затем сможет переопределить это для отдельных запросов, если это необходимо. Есть ли возможный/предпочтительный способ сделать это с помощью Jongo?Jongo MongoDB: Как указать значение ReadPreference по умолчанию

Редактировать: Поскольку Jongo инициализируется с использованием MongoClient().getDB(), будет ли он подходящим для инициализации моего MongoClient с параметрами, определяющими ReadPreference? Я предполагаю, что я прошу - если я сделаю это таким образом, эти настройки будут перенесены и применены внутри Jongo, или есть другой способ справиться с этим в Jongo напрямую?

Спасибо заранее.

ответ

0

Возможно, вам следовало только попробовать, прежде чем спросить, но я дам ответ всем, у кого может быть этот вопрос в будущем. Короткий ответ: Да, установка его через MongoClient с использованием объекта MongoClientOptions переносится на 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.

Чтобы быть ясным, причина, по которой я делал это, заключалась в том, чтобы читать из Secondary членов MongoDB ReplicaSet, если они были доступны с наименьшей задержкой.

Смежные вопросы