Mongodb: cara melakukan kueri dengan rentang tanggal


Anda dapat menggunakan sintaks dasar berikut untuk melakukan kueri dengan rentang tanggal di MongoDB:

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

Kueri khusus ini akan mengembalikan semua dokumen dalam koleksi yang bidang “harinya” lebih besar dari 21-01-2020 dan kurang dari 24-01-2020.

Perhatikan bahwa $gt menunjukkan “lebih besar dari” dan $lt menunjukkan “kurang dari”.

Anda juga dapat menggunakan $gte untuk “lebih besar dari atau sama dengan” dan $lte untuk “kurang dari atau sama dengan”.

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktik dengan penjualan koleksi dengan dokumen berikut:

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

Contoh 1: Pencarian dokumen antara dua tanggal

Kita dapat menggunakan kode berikut untuk menemukan semua dokumen yang kolom “harinya” berada di antara dua tanggal tertentu:

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

Kueri ini mengembalikan dua dokumen berikut:

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

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

Contoh 2: Mencari dokumen setelah tanggal tertentu

Kita dapat menggunakan kode berikut untuk menemukan semua dokumen yang kolom “hari”-nya setelah tanggal tertentu:

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

Kueri ini mengembalikan dua dokumen berikut:

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

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

Contoh 3: Mencari dokumen sebelum tanggal tertentu

Kita dapat menggunakan kode berikut untuk menemukan semua dokumen yang kolom “hari”-nya sebelum tanggal tertentu:

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

Kueri ini mengembalikan dua dokumen berikut:

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

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

Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi ISODate() di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan query umum lainnya di MongoDB:

MongoDB: Cara melakukan kueri dengan ekspresi reguler “Suka”.
MongoDB: Cara memeriksa apakah bidang berisi string

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *