MongoDB Compass — мощный инструмент, предоставляющий графический интерфейс для взаимодействия с базами данных MongoDB. Одним из распространенных требований при работе с данными на основе дат является фильтрация результатов запроса по определенной дате или диапазону дат. В этой статье мы рассмотрим различные методы фильтрации результатов запроса MongoDB Compass по дате, а также приведем примеры кода.
Метод 1: базовая фильтрация дат
Самый простой способ фильтровать результаты запроса MongoDB Compass по дате — использовать операторы сравнения, такие как $eq, $lt, $gtи т. д. Вот пример фильтрации документов по определенной дате:
db.collection.find({ dateField: { $eq: new Date('2022-01-01') } })
Метод 2: Фильтрация диапазона дат
Чтобы фильтровать документы в пределах определенного диапазона дат, вы можете использовать $gte(больше или равно) и $lte( меньше или равно) операторы. Вот пример:
db.collection.find({
dateField: {
$gte: new Date('2022-01-01'),
$lte: new Date('2022-12-31')
}
})
Метод 3: фильтрация по текущей дате
Если вы хотите фильтровать документы по текущей дате, вы можете использовать оператор $exprвместе с оператором $eqоператор. Вот пример:
db.collection.find({
$expr: {
$eq: [
{ $dateToString: { format: '%Y-%m-%d', date: '$dateField' } },
{ $dateToString: { format: '%Y-%m-%d', date: new Date() } }
]
}
})
Метод 4: фильтрация по определенной части даты
Иногда вам может потребоваться фильтровать документы по определенной части даты, например месяцу или году. Для достижения этой цели MongoDB предоставляет различные операторы дат, такие как $month, $yearи т. д. Вот пример фильтрации документов за определенный месяц:
db.collection.find({ $expr: { $eq: [{ $month: '$dateField' }, 1] } })
В этой статье мы рассмотрели несколько методов фильтрации результатов запросов MongoDB Compass по дате. Мы рассмотрели базовую фильтрацию дат, фильтрацию диапазона дат, фильтрацию по текущей дате и фильтрацию по определенной части даты. Используя эти методы, вы можете легко сузить результаты запроса в соответствии с вашими конкретными требованиями на основе дат.
Не забудьте проверить официальную документацию MongoDB для получения более подробной информации об операторах даты и фильтрации запросов. Приятного кодирования!