0

我正在将 MongoDB 用于我们的 Java 应用程序,如下所示。我正在进行以下查询,如下所示:

public Set<String> findDuplicateEquities() {
BasicDBObject query = new BasicDBObject();
BasicDBObject sort = new BasicDBObject();
query.put("symbol", "SUNG");
sort.put("price", "1");
DBCursor cursor = collection.find(query).sort(sort);

我是否还需要为价格字段创建索引,因为我将它用于排序目的?

4

1 回答 1

1

这取决于返回的文档数量find({symbol:"SUNG"})。当只返回少数需要排序的条目时,我不会打扰。但是,当此查询返回数百个或更多文档时,创建包含价格的复合索引可能会有所帮助,因为这样就可以从索引中按排序顺序检索条目,而不必事后对其进行排序。

请注意,应该加速的索引find( ... ).sort( ... )需要是一个复合索引,它以所有与 find-query 完全匹配的字段开头,紧随其后的是您以正确顺序和方向排序的字段。有关更多信息,请阅读有关复合索引的文档

于 2013-10-06T10:15:08.413 回答