Mongodb: query's uitvoeren met een datumbereik


U kunt de volgende basissyntaxis gebruiken om query’s uit te voeren op een datumbereik in MongoDB:

 db.collection.find({
    day: {
        $gt : ISODate(" 2020-01-21 "),
        $lt : ISODate(" 2020-01-24 ")
    }
})

Deze specifieke zoekopdracht retourneert alle documenten in de collectie waarvan het veld ‚dag‘ groter is dan 21-01-2020 en kleiner dan 24-01-2020.

Merk op dat $gt „groter dan“ aangeeft en $lt „kleiner dan“.

Je kunt ook $gte gebruiken voor „groter dan of gelijk“ en $lte voor „kleiner dan of gelijk“.

De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken bij een collectieverkoop met de volgende documenten:

 db.sales.insertOne({day: new Date(" 2020-01-20 "), amount: 40 })
db.sales.insertOne({day: new Date(" 2020-01-21 "), amount: 32 })
db.sales.insertOne({day: new Date(" 2020-01-22 "), amount: 19 })
db.sales.insertOne({day: new Date(" 2020-01-23 "), amount: 29 })
db.sales.insertOne({day: new Date(" 2020-01-24 "), amount: 35 })

Voorbeeld 1: Zoeken naar documenten tussen twee datums

We kunnen de volgende code gebruiken om alle documenten te vinden waarbij het veld “dag” zich tussen twee specifieke datums bevindt:

 db.sales.find({
    day: {
        $gt : ISODate(" 2020-01-21 "),
        $lt : ISODate(" 2020-01-24 ")
    }
})

Deze query retourneert de volgende twee documenten:

 { _id: ObjectId("618548bc7529c93ea0b41490"),
  day: 2020-01-22T00:00:00.000Z,
  amount: 19 }

{ _id: ObjectId("618548bc7529c93ea0b41491"),
  day: 2020-01-23T00:00:00.000Z,
  amount: 29 }

Voorbeeld 2: Zoeken naar documenten na een specifieke datum

We kunnen de volgende code gebruiken om alle documenten te vinden waarvan het veld „dag“ na een specifieke datum ligt:

 db.sales.find({
    day: {
        $gt : ISODate(" 2020-01-22 ")
    }
})

Deze query retourneert de volgende twee documenten:

 { _id: ObjectId("618548bc7529c93ea0b41491"),
  day: 2020-01-23T00:00:00.000Z,
  amount: 29 }

{ _id: ObjectId("618548bc7529c93ea0b41492"),
  day: 2020-01-24T00:00:00.000Z,
  amount: 35 }

Voorbeeld 3: Zoeken naar documenten van vóór een specifieke datum

We kunnen de volgende code gebruiken om alle documenten te vinden waarvan het veld „dag“ vóór een specifieke datum ligt:

 db.sales.find({
    day: {
        $lt : ISODate(" 2020-01-22 ")
    }
})

Deze query retourneert de volgende twee documenten:

 { _id: ObjectId("618548bc7529c93ea0b4148e"),
  day: 2020-01-20T00:00:00.000Z,
  amount: 40 }

{ _id: ObjectId("618548bc7529c93ea0b4148f"),
  day: 2020-01-21T00:00:00.000Z,
  amount: 32 }

Opmerking : u kunt de volledige documentatie voor de ISODate()- functie hier vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende query’s in MongoDB kunt uitvoeren:

MongoDB: Query’s uitvoeren met een reguliere expressie „Vind ik leuk“.
MongoDB: Hoe u kunt controleren of een veld een string bevat

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert