我正在使用scala的play framework v2.6,我使用reactivemongo作为mongodb的驱动程序,我的问题是我不知道如何检索具有两个值之间的值的对象。在我的例子中我有这个案例类:
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)]
答案 0 :(得分:0)
根据mongo documentation,$and
运算符需要一个数组:
val query = BSONDocument(
"$and" -> BSONArray(List(
BSONDocument("creationDate" -> Json.obj("$gte" ->startDate)),
BSONDocument("creationDate" -> Json.obj("$lte" ->endDate))
))
)