2017-02-24 70 views
0

我有大約10萬條記錄的集合。因爲它具有公司ID和員工級別,因此都按升序編制索引。如何從我們find命令MongoDB中獲得的文件進行排序?

當我寫一個查詢作爲db.collection.find("companyID":"XXX"),蒙戈返回結果非常快,但是當我申請排序上

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

其採取了大量的時間作爲該companyID我們有10萬分的記錄。

雖然兩個領域進行索引,其採取了大量的時間來處理並返回結果。請幫助如何解決這些類型的問題...

+1

數據和代碼示例請 –

+0

排序結果客戶端如果你真的關心數據庫的速度。或者,如果排序是經常執行的操作,則不要使用NoSQL數據庫。 –

回答

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); 
+0

奇蹟,它的工作...謝謝 –

相關問題