1

我想使用以下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);

它会设置我的阅读偏好吗?

4

2 回答 2

2

您可以在多个级别上设置读取首选项:客户端、数据库、集合,最后是单个查询。

如果您在 MongoClient 上设置读取首选项

mongoClient.setReadPreference(secondary());

那么这是将用于所有查询的默认读取首选项,除非您另有定义。您需要确保在运行任何查询之前设置它,否则它不会生效。

如果您使用以下命令对集合设置读取首选项:

collection.setReadPreference(primary());

这将覆盖您的 MongoClient 设置,并且在访问此集合时默认使用主节点(请参阅此博客文章以了解读取首选项如何在集合级别工作。

最后,您可以进一步覆盖某些单独查询的首选项,例如您发现已弃用的方法。

于 2013-10-23T14:57:22.023 回答
1

DBCursorskip(),batchSize()setOptions()方法。您可以按如下方式使用它们:

db.<collection>find(DBObject query,DBObject param).skip(int skip).batchSize(int batchSize).setOptions(int options);
于 2013-10-09T06:46:34.673 回答