Я использую игровой фреймворк v2.6 со scala, я использую reactivemongo в качестве драйвера для mongodb, моя проблема в том, что я не знаю, как получить объекты, значения которых находятся между двумя значениями. В моем примере у меня есть этот класс case:
case class Card (id : String, creationDate: Date)
Я хочу получить карты, дата создания которых находится между двумя датами, поэтому я использовал этот запрос:
val query = BSONDocument(
"$and" -> BSONDocument(
"creationDate" -> Json.obj("$gte" ->startDate),
"creationDate" -> Json.obj("$lte" ->endDate))
)
но это выводит следующую ошибку:
A server error occurred DatabaseException['Can't canonicalize query:
BadValue and needs an array' (code = 17287)]





Согласно документация mongo оператору $and нужен массив:
val query = BSONDocument(
"$and" -> BSONArray(List(
BSONDocument("creationDate" -> Json.obj("$gte" ->startDate)),
BSONDocument("creationDate" -> Json.obj("$lte" ->endDate))
))
)
Ошибка говорит сама за себя (и не относится к ReactiveMongo).