通过 3 个 MongoD 集合进行映射

Mapping Through 3 MongoD collections

我正在尝试通过 monogdb 集合进行映射(我为我所有的数据库活动实现了 DAO。我正在使用 play 框架),但我在实现这一点时遇到了麻烦。我有 3 个我正在尝试比较的集合和 return 它们的 JSON 个对象。

 def make=Action.async{

  val person= PersonDAO.correlationData
  val vehicle= VehicleDAO.correlationData
  val incident= IncidentDAO.correlationData

  person.map{x =>
      vehicle.map{ y =>
        incident.map{z =>
          if(x == y == z){
            println("related")
          }
          else
            println("not related")
        }
      }
  }
    println("here")
}

这不会打印任何内容,因为我的类型不匹配 return 类型。 如果此信息有帮助,我正在尝试实现 1:3、3:1、1:2、2:1、1:3 和 3:1 相关性,意思是,比较所有三个合集。

对于可能偶然发现此问题的任何人。我实际上找到了解决此问题的方法...结果比我预期的要容易。我使用 for-yield 语句将我的所有响应发送到我的 Angular 控制器,然后以这样的方式结束

def make=Action.async{

  val person= PersonDAO.correlationData
  val vehicle= VehicleDAO.correlationData
  val incident= IncidentDAO.correlationData


    for {
      person <- person
      vehicle <- vehicle
      incident <- incident
    } yield Ok(Json.obj("person" -> Json.toJson(person) , "vehicle" -> Json.toJson(vehicle), "incident" -> Json.toJson(incident)))

}

}

也许有更有效的方法来做到这一点..但现在,这对我有用,我可以使用 angularjs.In 我的 angular 控制器轻松操作我的数据,我可以映射我的数据,做我需要做的事。