Mongodb: so fragen sie mit einem datumsbereich ab


Sie können die folgende grundlegende Syntax verwenden, um einen Datumsbereich in MongoDB abzufragen:

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

Diese spezielle Abfrage gibt alle Dokumente in der Sammlung zurück, deren Feld „Tag“ größer als 21.01.2020 und kleiner als 24.01.2020 ist.

Beachten Sie, dass $gt „größer als“ und $lt „kleiner als“ angibt.

Sie können auch $gte für „größer als oder gleich“ und $lte für „kleiner als oder gleich“ verwenden.

Die folgenden Beispiele zeigen, wie Sie diese Syntax in der Praxis bei einem Sammlungsverkauf mit folgenden Dokumenten anwenden können:

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

Beispiel 1: Suche nach Dokumenten zwischen zwei Datumsangaben

Mit dem folgenden Code können wir alle Dokumente finden, bei denen das Feld „Tag“ zwischen zwei bestimmten Daten liegt:

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

Diese Abfrage gibt die folgenden zwei Dokumente zurück:

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

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

Beispiel 2: Suche nach Dokumenten nach einem bestimmten Datum

Mit dem folgenden Code können wir alle Dokumente finden, deren Feld „Tag“ nach einem bestimmten Datum liegt:

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

Diese Abfrage gibt die folgenden zwei Dokumente zurück:

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

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

Beispiel 3: Suche nach Dokumenten vor einem bestimmten Datum

Mit dem folgenden Code können wir alle Dokumente finden, deren Feld „Tag“ vor einem bestimmten Datum liegt:

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

Diese Abfrage gibt die folgenden zwei Dokumente zurück:

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

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

Hinweis : Die vollständige Dokumentation für die Funktion ISODate() finden Sie hier .

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Abfragen in MongoDB durchführen:

MongoDB: So fragen Sie mit einem regulären Ausdruck „Gefällt mir“ ab
MongoDB: So überprüfen Sie, ob das Feld eine Zeichenfolge enthält

Einen Kommentar hinzufügen

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