javamongodbspring-mvcsharding

How to set MongoDB ReadPreference in Spring MVC's contextConfigLocation


I am connecting to a MongoDB sharding server via mongodb java driver in Spring MVC. I am using the following versions:

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);