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

Perbedaan MongoDB antara objek DateTime dan string YYYY-MM-DD

Jika Anda tidak peduli dengan dukungan zona waktu dalam aplikasi Anda, maka menggunakan string untuk kueri dasar di MongoDB akan berfungsi dengan baik (tetapi jika itu penting, Anda akan menginginkan Date yang sebenarnya. jenis).

Namun, jika nanti Anda ingin melakukan matematika tanggal atau menggunakan Kerangka Agregasi dengan bidang tanggal Anda, bidang tersebut harus benar-benar Date ketik:

http://docs.mongodb.org/manual/reference/aggregation/ #date-operator

Misalnya, Anda dapat menggunakan $dayOfWeek fungsi pada Date bidang yang diketik.

Anda mungkin dapat melakukan beberapa hal sederhana seperti grup pada tahun dengan menggunakan $substr (doc ) di MongoDB, tetapi kode yang dihasilkan tidak akan sejelas (juga tidak mungkin berfungsi dengan baik).

Meskipun perbedaannya tidak terlalu besar, saya sarankan untuk menyimpannya sebagai Date jenis jika memungkinkan secara umum.

Saya melihat di dokumen untuk driver Perl yang diperingatkan pengembang agar tidak menggunakan DateTime karena faktanya sangat lambat, jadi mungkin jika Anda menggunakan Perl secara teratur, dan Kerangka Agregasi bukan masalah besar, Anda sebaiknya menyimpannya sebagai angka atau string, dan mengonversinya sesuai kebutuhan di Perl.

Jika spasi menjadi masalah, hapus karakter yang tidak perlu (seperti - ):

20130613 -> 
    4 bytes for length of string 
    8 bytes encoded as UTF-8
    NULL character

Itu akan menjadi 13 karakter. Nilai DateTime di BSON /MongoDB membutuhkan 8 byte di sisi lain (seperti halnya Perl $time fungsi).

(Saya sangat menyarankan Anda melakukan sedikit pengujian kinerja untuk mengetahui apakah dampak kinerja dari penggunaan Date ketik MongoDB dengan Perl akan memengaruhi alur kerja tipikal Anda.)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Luwak:apakah _id khusus perlu dideklarasikan sebagai indeks dan unik?

  2. Bagaimana cara melakukan addToSet menggunakan driver resmi Go?

  3. Banyak koneksi luwak

  4. Simpan file di disk atau MongoDB

  5. Koneksi ditolak ke MongoDB errno 111