如何使用索引提示选项查询

时间:2013-10-21 16:22:42

标签: java mongodb

我有一个集合,我在一个已命名的符号上有一个索引。

我已经阅读了在查询上使用提示的好处,这会降低查询的速度

db.collection.find({"symbol" : "RESD"}).hint( { symbol: 1 } )

有人可以告诉我如何在java中使用Indexed hint Option Query,现在这是我的代码。

BasicDBObject query = new BasicDBObject();
query.put("symbol", symbol);
DBCursor cursor = coll.find(query);

2 个答案:

答案 0 :(得分:2)

使用新的(3.x)驱动程序,您需要指定$ 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中的实际索引名称。

答案 1 :(得分:1)

您可以尝试:

DBCursor cursor = coll.find(query).hint(new BasicDBObject("symbol" , 1))