在使用 java api 的 mongodb 版本 3 中,我们如何在查询时给出提示查询结果是 FindIterable,它具有 MongoCursor。 我应该如何提示使用特定索引。
对于旧版本,DBCursor 有 API 用于提示。
在使用 java api 的 mongodb 版本 3 中,我们如何在查询时给出提示查询结果是 FindIterable,它具有 MongoCursor。 我应该如何提示使用特定索引。
对于旧版本,DBCursor 有 API 用于提示。
应该使用修饰符:
BasicDBObject index = new BasicDBObject("num", 1);
BasicDBObject hint = new BasicDBObject("$hint", index);
FindIterable<Document> iterable = collection.find().modifiers(hint);
您需要使用 FindIterable.modifiers 方法来指定 $hint:
private static void testHint(MongoDatabase db) {
MongoCollection<Document> col = db.getCollection("Stores");
FindIterable<Document> iterable = col.find(new Document("store","storenumbervalue"));
iterable.modifiers(new Document("$hint","index_name"));
MongoCursor curs = iterable.iterator();
while(curs.hasNext()){
System.out.println(curs.next());
}
}
index_name - mongo 中的实际索引名称。