1
什麼是Java中的等價CDE:相當於Java階查詢的MongoDB中
var result = collectionName.findOne()
println(result.get("name").toString)
爲了闡述,這是我的示例數據庫:
{ "_id" : ObjectId("4ca039f7a5b75ab98a44b149"), "name" : "kaustubh", "country" : "india" }
{ "_id" : ObjectId("4ca03a85a12344a5e47bcc5c"), "name" : "rahul", "country" : "pakistan" }
{ "_id" : ObjectId("4ca03a9ea12344a5e47bcc5d"), "name" : "swapnil", "country" : "lanka" }
{ "_id" : ObjectId("4ca03b19a12344a5e47bcc5e"), "name" : "sagar", "country" : "nepal" }
我運行在它下面的查詢:
query.put("country", "india");
DBCursor cursor = collection.find(query);
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
,打印:
{ "_id" : { "$oid" : "4ca04b6b37a85ab92557218a"} , "name" : "kaustubh" , "country" : "india"}
與集合中存在的次數一樣多。
我該如何制定一個查詢來獲得所有的名字,一次並獲得他們的計數。我閱讀文檔,並沒有遇到任何方式來做到這一點。
使用collection.distinct( 「國家」,新BasicDBObject 「名」, 「kaustubh」)以不同的方式工作 :) – theTuxRacer 2010-09-27 09:46:39
鮮明的作品,首先它會找出所有的項目並會返回其中一個。但findOne會在第一個項目匹配時停止執行。與distinct相比,性能要好得多... Distinct對您的要求不好。 – RameshVel 2010-09-27 10:10:05
我明白我錯誤地問了這個問題。我現在編輯它,爲此distinct()是必要的!然後,我將不同的值存儲在一個List中,並將另一個值中的每個值存儲起來。感謝您回答我的問題! – theTuxRacer 2010-09-27 10:42:42