Java 如何在mongo中找到某个字段下的所有值并创建该字段的映射?

Java 如何在mongo中找到某个字段下的所有值并创建该字段的映射?,java,mongodb,scala,mongodb-query,Java,Mongodb,Scala,Mongodb Query,我有一个mongo系列,看起来像这样: { "_id" : ObjectId("456391bf2db8613231935362"), "country" : "denmark", "city" : "copenhagen" } { "_id" : ObjectId("456391bf2db8613231935363"), "country" : "denmark", "city" : "odense" } { "_id" : ObjectId("456391bf2db8613231935364

我有一个mongo系列,看起来像这样:

{ "_id" : ObjectId("456391bf2db8613231935362"), "country" : "denmark", "city" : "copenhagen" }
{ "_id" : ObjectId("456391bf2db8613231935363"), "country" : "denmark", "city" : "odense" }
{ "_id" : ObjectId("456391bf2db8613231935364"), "country" : "austria", "city" : "vienna" }
{ "_id" : ObjectId("456391bf2db8613231935365"), "country" : "austria", "city" : "vilach" }
...
我想创建一个查找方法,以地图的形式查找一个国家的所有城市,从以下内容开始:

def findAllCittiesPerCountry(): Future[Map[String,List[String]]] = {

  myCollection.find.map(obj => obj.get("country").get).toFuture().map(x => x.distinct)

}
但这不是解决办法,太笨拙,不够干净

有人有什么建议吗


谢谢

您必须使用Mongo聚合。使用聚合非常简单,您可以查看