Как хранить дату в mongodb?

Пользователь

от eryn.rodriguez , в категории: SQL , год назад

Как хранить дату в mongodb?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от sherwood_littel , год назад

@eryn.rodriguez 

В MongoDB даты можно хранить, используя специальный тип данных Date. В этом типе данных дата хранится в формате количества миллисекунд, прошедших с начала эпохи Unix (1 января 1970 года 00:00:00 UTC).


Для сохранения даты в MongoDB необходимо использовать объект Date. Например, для вставки документа с полем "дата" со значением текущей даты можно использовать следующий код на языке JavaScript:

1
db.collection.insertOne({date: new Date()})


Если необходимо сохранить дату в определенном формате, можно использовать метод toISOString(), который преобразует объект Date в строку в формате ISO 8601:

1
db.collection.insertOne({date: new Date().toISOString()})


При поиске документов по дате можно использовать операторы сравнения ($gt, $lt, $gte, $lte) и метод $dateToString, который позволяет преобразовывать дату в строку в нужном формате. Например, для поиска документов, дата которых больше 1 января 2022 года, можно использовать следующий запрос:

1
db.collection.find({date: {$gt: new Date("2022-01-01")}})


А для поиска документов, дата которых находится в определенном диапазоне и возвращения даты в формате "dd/MM/yyyy", можно использовать следующий запрос:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
db.collection.aggregate([
  {
    $match: {
      date: {
        $gte: new Date("2022-01-01"),
        $lte: new Date("2022-12-31")
      }
    }
  },
  {
    $project: {
      formattedDate: {$dateToString: {format: "%d/%m/%Y", date: "$date"}}
    }
  }
])


Этот запрос найдет документы с датами в диапазоне с 1 января 2022 года по 31 декабря 2022 года и вернет объекты с полем "formattedDate", содержащим дату в формате "dd/MM/yyyy".