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

Masalah ketepatan waktu pada perbandingan dalam driver mongodb di Go dan mungkin dalam bahasa lain dan basis data lainnya

Waktu dalam BSON direpresentasikan sebagai milidetik UTC sejak zaman Unix (spec ). Nilai waktu di Go memiliki presisi nanodetik.

Untuk memutar waktu perjalanan. Nilai waktu melalui penyusunan BSON, gunakan waktu yang dipotong menjadi milidetik sejak zaman Unix:

func truncate(t time.Time) time.Time {
    return time.Unix(0, t.UnixNano()/1e6*1e6)
}

...

u := user{
    Username:          "test_bson_username",
    Password:          "1234",
    UserAccessibility: "normal",
    RegisterationTime: truncate(time.Now()), 
}

Anda juga dapat menggunakan Time.Truncate metode:

u := user{
    Username:          "test_bson_username",
    Password:          "1234",
    UserAccessibility: "normal",
    RegisterationTime:  time.Now().Truncate(time.Millisecond),
}

Pendekatan ini bergantung pada fakta bahwa epoch Unix dan waktu nol Go berbeda sejumlah milidetik.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Berurusan dengan kondisi balapan dan kelaparan saat membuat ID unik menggunakan MongoDB + NodeJS

  2. pemetaan bidang id mongodb data pegas

  3. Bagaimana cara memasukkan banyak dokumen sekaligus di MongoDB melalui Java

  4. Bagaimana cara menghitung total lari menggunakan agregat?

  5. Bagaimana cara mengizinkan data JSON bentuk bebas dalam dokumen Mongoose?