2015-06-29 28 views
-1

我知道我能得到一個不同的清單,這樣的查詢:如何獲得不同領域的數量在MongoDB的Java驅動程序

db.collections.distinct("fieldName") 

,並得到列表的長度與

db.collections.distinct("fieldName").length 

但有沒有辦法在mongodb-java-driver中獲得length而不是在聚合查詢中?

或將要實現,如:

collection.distinct("fieldName", condition).size() 

太低效?

+0

其中'蒙戈-java的driver'你用嗎? – Yogesh

+0

@yogesh官方的一個'mongo-java-driver'版本2.12.0 – armnotstrong

回答

0

使用你的代碼稍加修改:

db.collections.distinct("fieldName").length 
+1

對不起,我只是在mongodb客戶端shell中找到了這樣做的答案(雖然你發佈了答案,謝謝),但我仍然沒有知道該怎麼做比用mongodb-java-driver – armnotstrong

+0

@armnotstrong看來mongodb不支持使用distinct命令進行服務器端排序。因此,彙總查詢將是您唯一的路線。在性能方面,對客戶端進行排序要好得多。 –

+0

感謝您的回覆,我只是覺得**也許**我可以用'list.size()'做到這一點,因爲'distinct'返回了一個列表,但效率會不高? – armnotstrong