0

我有一个集合,我在一个名为 symbol 的字段上有一个索引。

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

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

谁能告诉我如何在 java 中使用索引提示选项查询,现在这是我的代码。

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

2 回答 2

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 中的实际索引名称。

于 2016-07-07T15:47:02.070 回答
1

你可以试试:

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

于 2013-10-21T16:36:17.167 回答