2016-02-03 3 views
0

У меня есть документы, которые хранятся в MongoDB в формате UTC: 2016-01-28T01:00:00Z, где Z представляет время UTC.Возврат документов из MongoDB, хранящихся в формате UTC

Что я пытаюсь сделать, это найти все документы, для которых дата не истек (date_stored_in_DB> Today's Date). Однако я смущен о правильном способе этого.

Подход 1: Должен ли я преобразовать сегодняшнюю дату в Z-формат (как показано выше) и начать поиск в базе данных? Таким образом, это будет просто совпадение строк.

Подход 2: Должен ли я получить все записи из базы данных и преобразовать каждую дату в формат синтаксического анализа, например, 02/03/2016 и сравнить с сегодняшней датой? Я думаю, что regex здесь, но я не уверен.

Подход 3: Ваши предложения?

Я использую реактивную ленту с scala &, чтобы создать это.

ответ

1

Самый простой способ, чтобы преобразовать текущую дату в формате UTC:

val utcString = new DateTime(now).withZone(DateTimeZone.UTC) 

Вы можете передать это значение в MongoDB запроса $gt для извлечения не просроченный записи.

3

Если вы сохранили дату как тип ISODate, то вы можете просто запросить против него так:

db.yourcollection.find ({ "Дата": {$ GTE: новый ISODate ("2016-01- 28T01: 00: 00Z ")}});

Операторы операторов $ gte для больше или равно. См. this для получения дополнительной информации.

Запросить все записи, чтобы затем отфильтровать их, как правило, не очень хорошая идея.

 Смежные вопросы

  • Нет связанных вопросов^_^