我正在尝试使用ReactiveMongo和Play Framework& JSON:
db.getCollection('people').find({'refreshed': {$gt: ISODate('2017-01-01')}})
我试过了:
def peopleFuture Future[JSONCollection] database.map(_.collection[JSONCollection]("people"))
运行查询:
val fromDate = LocalDate.parse("2017-01-01").atStartOfDay()
val query = Json.obj("$gte" -> fromDate)
peopleFuture.flatMap(people => listings.people(query).cursor[JsObject]().collect[List]())
这将返回一个空序列。
根据documentation,数据/时间字段表示为
带有$ date JsNumber字段的JsObject,带有时间戳(毫秒) 作为价值
然而,这在查询时似乎没什么帮助。
我在Play Framework 2.5中使用ReactiveMongo 0.12.1
答案 0 :(得分:1)
您可以使用JodaTime
,如下所示:
import org.joda.time.DateTime
val fromDate = DateTime.parse("2017-01-01")
val query = Json.obj("refreshed"->Json.obj("$gte" -> Json.obj("$date" -> JsNumber(fromDate.getMillis))))