我正在尝试使用以下查找查询,
{
"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)+"}}";
}
我得到了它的工作。但是,不确定这是否是正确的方法。