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