Meminta Rentang Tanggal (Bulan atau Hari Tertentu) di Buku Masak MongoDB memiliki penjelasan yang sangat bagus tentang masalah ini, tetapi di bawah ini adalah sesuatu yang saya coba sendiri dan tampaknya berhasil.
items.save({
name: "example",
created_at: ISODate("2010-04-30T00:00:00.000Z")
})
items.find({
created_at: {
$gte: ISODate("2010-04-29T00:00:00.000Z"),
$lt: ISODate("2010-05-01T00:00:00.000Z")
}
})
=> { "_id" : ObjectId("4c0791e2b9ec877893f3363b"), "name" : "example", "created_at" : "Sun May 30 2010 00:00:00 GMT+0300 (EEST)" }
Berdasarkan eksperimen saya, Anda perlu membuat serial tanggal Anda ke dalam format yang didukung MongoDB, karena berikut ini memberikan hasil pencarian yang tidak diinginkan.
items.save({
name: "example",
created_at: "Sun May 30 18.49:00 +0000 2010"
})
items.find({
created_at: {
$gte:"Mon May 30 18:47:00 +0000 2015",
$lt: "Sun May 30 20:40:36 +0000 2010"
}
})
=> { "_id" : ObjectId("4c079123b9ec877893f33638"), "name" : "example", "created_at" : "Sun May 30 18.49:00 +0000 2010" }
Pada contoh kedua tidak ada hasil yang diharapkan, tetapi masih ada satu yang didapat. Ini karena perbandingan string dasar sudah selesai.