Como buscar registros entre 2 datas com MongoDB
2a atrás
Suponha que você tenha a seguinte coleção:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"dateFrom": ISODate("2023-02-12T00:00:00Z"),
"dateTo": ISODate("2023-02-13T00:00:00Z")
},
{
"_id": ObjectId("5a934e000102030405000001"),
"dateFrom": ISODate("2023-02-14T00:00:00Z"),
"dateTo": ISODate("2023-02-15T00:00:00Z")
}
]
A coleção possui "dateFrom" e "dateTo", ambas no padrão ISO.
Para buscar registros entre 2 datas, você precisará utilizar os operadores $gte e $lte, conforme o código abaixo:
db.collection.find({
"dateFrom": {
"$gte": {
"$date": "2023-02-12T00:00:00.000Z"
}
},
"dateTo": {
"$lte": {
"$date": "2023-02-13T00:00:00.000Z"
}
}
})
$gte vai procurar por valores maiores ou iguais. Nesse caso passamos a data em formato ISO: "2023-02-12T00:00:00.000Z".
$lte vai procurar por valores menores ou iguais. E passamos a data em formato ISO: "2023-02-13T00:00:00.000Z".
Esse será o resultado retornado:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"dateFrom": ISODate("2023-02-12T00:00:00Z"),
"dateTo": ISODate("2023-02-13T00:00:00Z")
}
]
Comentários (0)