如何对mongodb中从FIND命令获取的文件进行排序?

时间:2017-02-24 12:39:25

标签: java mongodb

我有大约1000万条记录的集合。因为它具有companyID和员工级别,所以它们都按升序编制索引。

当我将查询编写为db.collection.find("companyID":"XXX")时,mongo会非常快地返回结果,但是当我对其应用排序时

db.collection.find("companyID":"XXX").sort({"empLevel":1})

它花了很多时间,因为那个companyID我们有100000条记录。

尽管两个字段都已编制索引,但它需要花费大量时间来处理并返回结果。请帮助解决这些问题......

1 个答案:

答案 0 :(得分:1)

java中的解决方案

导入这些

import static com.mongodb.client.model.Sorts.*;
import static com.mongodb.client.model.Filters.*;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
import org.bson.conversions.Bson;

代码

MongoCollection <Document> images = mongo.getCollection("nameofcollection");    
Bson sort = descending("empLevel");
FindIterable<Document> iterdoc = album.find(eq("companyID",XXX)).sort(sort);