Допустим, у вас есть коллекция col
с полем dateTime
типа Дата BSON , интерпретируемая как UTC .Затем вы хотите получить все документы за 25 декабря для America/New_York
часового пояса (где календарный день начинается через 5 часов после UTC).Для этого вы можете использовать оператор $ dateFromParts в Aggregation Framework и передать часовой пояс в качестве параметра:
db.col.aggregate([
{
$match: {
$expr: {
$and: [
{ $gte: [ "$dateTime", { $dateFromParts: { 'year' : 2018, 'month' : 12, 'day': 25, timezone: 'America/New_York' } } ] },
{ $lte: [ "$dateTime", { $dateFromParts: { 'year' : 2018, 'month' : 12, 'day': 26, timezone: 'America/New_York' } } ] }
]
}
}
}
])
timezone
выражение может быть либо идентификатор часового пояса Олсона (например, America/New_York
) или смещение UTC, например +05:00