如何在Play中使用$ in mongo查询和ReactiveMongo!框架2.6?

时间:2017-12-18 21:51:47

标签: scala playframework-2.0 reactivemongo play-reactivemongo reactivemongo-play-json

我正在尝试使用以下查找查询,

{
   "uid" : { "$in" : ["value1", "value2"] }
}

数组[" value1"," value2"]应该从Scala 数组[String] 动态设置。

这是我的代码,

    def find(uids: Array[String]): Future[Seq[User]] = {
    val query: JsObject = Json.parse(JsonUtil.toInQuery(uids, "uid")).asInstanceOf[JsObject]
    collection.flatMap(_.find(query)
      .cursor[User](ReadPreference.primary)
      .collect[Seq]()
    )
  }

方法 JsonUtil.toInQuery(uids," uid")正在创建查询的json字符串。我尝试使用BSONDocument并手动编写Json查询而不是传递json字符串,但它似乎不起作用。

有人可以建议我使用play-mongo和play framework 2.6一起使用该查询吗?

更新

public static String toJsonString(String[] arr){
        return Json.toJson(arr).toString();
    }

public static String toInQuery(String[] arr, String item){
    return "{ \""+item+"\": {\"$in\": "+toJsonString(arr)+"}}";
}

我得到了它的工作。但是,不确定这是否是正确的方法。

0 个答案:

没有答案