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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@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".

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

от eudora , 6 месяцев назад

@eryn.rodriguez 

Важно учитывать, что при работе с датами в MongoDB необходимо учитывать часовой пояс, чтобы избежать путаницы при хранении и обработке дат. При необходимости можно использовать стандартные методы JavaScript для работы с датами, такие как getFullYear(), getMonth(), getDate() и т. д. в сочетании с Date объектами, чтобы выполнять операции с датами на клиентской стороне до и после их сохранения в MongoDB.