@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".
@eryn.rodriguez
Важно учитывать, что при работе с датами в MongoDB необходимо учитывать часовой пояс, чтобы избежать путаницы при хранении и обработке дат. При необходимости можно использовать стандартные методы JavaScript для работы с датами, такие как getFullYear(), getMonth(), getDate() и т. д. в сочетании с Date объектами, чтобы выполнять операции с датами на клиентской стороне до и после их сохранения в MongoDB.