2014-10-01 2 views
3

Я использую ReactiveMongo без Play fremework.Как сравнить даты в запросе BSON ReactiveMongo?

Я пытаюсь написать эквивалент следующего простого запроса MongoDB:

db.oplog.rs.find({"o.TimeCreated":{"$gt": ISODate("2014-09-30T10:00:00.000Z")}}) 

Я пытался вещи, как:

val query = BSONDocument(
     "o.TimeCreated" -> BSONDocument("$gt" -> BSONDateTime(ts))) // ts is the timestamp corresponding to the date "2014-09-30T10:00:00.000Z" 

в надежде, что оператор «$ GT» будет работать для сравнения двух объектов BSONDateTime, считая, что значение «o.TimeCreated» будет внутренне представлено как объект BSONDateTime.

Но я не могу понять, как заставить запрос работать (данные не возвращаются).

Любые предложения? Благодаря !

+0

Возможно, я должен добавить, что в MongoDB значение «o.TimeCreated» хранится как ISODate. – user297112

ответ

0

Я могу предложить несколько вариантов для вас попробовать:

  • Вы могли бы хотеть попробовать BSONTimestamp вместо BSONDateTime в запросе
  • ли документы в oplog.rs коллекции имеют верхний объект уровня по имени "o.TimeCreated"?
  • Есть ли объект в коллекции, который может удовлетворить запрос с помощью метки времени, которую вы используете?
Смежные вопросы