Issue
I am connecting to a MongoDB sharding server via mongodb java driver in Spring MVC. I am using the following versions:
- spring-webmvc-3.2.1.RELEASE
- mongo-java-driver/2.10.0/mongo-java-driver-2.10.0
- spring-data-mongodb-1.2.0.RELEASE
My Mongo options are set in the contextConfigLocation file mvc-dispatcher-servlet.xml
<mongo:mongo host="mongo.sample.com" port="30000">
<mongo:options auto-connect-retry="true"
slave-ok="true"/>
</mongo:mongo>
It works pretty well, but the slave-ok is deprecated by come.MongoDB.ReadPreference. I just wonder if there is any way to set the readPreference for Spring MVC in the contextConfiLocation file.
Solution
Expanding @Trisha's response in to an answer: "Do it in MongoTemplate programmatically" by setting the ReadPreference
to SECONDARY
.
MongoTemplate template = new MongoTemplate(...);
template.setReadPreference(com.mongodb.ReadPreference.SECONDARY);
Answered By - JJ Zabkar