MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Permintaan tanggal dengan ISODate di mongodb sepertinya tidak berfungsi

Meskipun $date adalah bagian dari MongoDB Extended JSON dan itulah yang Anda dapatkan sebagai default dengan mongoexport Saya tidak berpikir Anda benar-benar dapat menggunakannya sebagai bagian dari kueri.

Jika mencoba pencarian yang tepat dengan $date seperti di bawah ini:

db.foo.find({dt: {"$date": "2012-01-01T15:00:00.000Z"}})

Anda akan mendapatkan kesalahan:

error: { "$err" : "invalid operator: $date", "code" : 10068 }

Coba ini:

db.mycollection.find({
    "dt" : {"$gte": new Date("2013-10-01T00:00:00.000Z")}
})

atau (mengikuti komentar oleh @user3805045):

db.mycollection.find({
    "dt" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")}
})

ISODate mungkin juga diperlukan untuk membandingkan tanggal tanpa waktu (dicatat oleh @MattMolnar).

Menurut Tipe Data di mongo Shell keduanya harus setara:

Shell mongo menyediakan berbagai metode untuk mengembalikan tanggal, baik sebagai string atau sebagai objek Tanggal:

  • Metode Date() yang mengembalikan tanggal saat ini sebagai string.
  • konstruktor Date() baru yang mengembalikan objek Date menggunakan pembungkus ISODate().
  • Konstruktor ISODate() yang mengembalikan objek Date menggunakan pembungkus ISODate().

dan menggunakan ISODate harus tetap mengembalikan objek Date.

{"$date": "ISO-8601 string"} dapat digunakan ketika representasi JSON yang ketat diperlukan. Salah satu contoh yang mungkin adalah konektor Hadoop.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. nama bidang ClassName sedang dimasukkan ke dalam mongodb oleh morphia

  2. Cassandra vs. MongoDB

  3. Kelompokkan berdasarkan nilai dan kondisi

  4. Apa pendekatan yang direkomendasikan terhadap database multi-penyewa di MongoDB?

  5. Agregat MongoDB, cara menambahkanToSet setiap elemen array dalam pipa grup