我想使用以下mongo java驱动程序的方法。\
db.<collection>.find(DBObject query,DBObject param,int skip,int batchSize,int option)
但是我发现这个方法已被弃用,所以还有什么可以使用,因为我有兴趣通过设置首选项来进行读取操作。
如果我使用以下内容:
List<ServerAddress> seeds = new ArrayList<ServerAddress>();
seeds .add(seed1);
seeds .add(seed2);
MongoClient test= new MongoClient(seeds);
以及稍后的时间点如果我
test.setReadPreference(preference);
是否会设置我的阅读偏好?
答案 0 :(得分:2)
您可以在多个级别设置读取首选项:客户端,数据库,集合,最后是单个查询。
如果使用
在MongoClient上设置读取首选项mongoClient.setReadPreference(secondary());
然后这是将用于所有查询的默认读取首选项,除非您另行定义。您需要确保在运行任何查询之前设置此,否则它将不会生效。
如果使用以下方法在集合上设置读取首选项:
collection.setReadPreference(primary());
这将覆盖您的MongoClient设置,并且在访问此集合时默认使用主要设置(请参阅this blog post以了解读取偏好如何在集合级别工作。
最后,您可以进一步覆盖某些单个查询的首选项,例如您发现的已弃用的方法。
答案 1 :(得分:1)
DBCursor有skip()
,batchSize()
和setOptions()
方法。您可以按如下方式使用它们:
db.<collection>find(DBObject query,DBObject param).skip(int skip).batchSize(int batchSize).setOptions(int options);