Como buscar registros entre 2 datas com MongoDB

1a atrás

0 0

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")
  }
]

#MongoDB


Comentários (0)

0/512
Link