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

Cara mengekstrak stempel waktu dari mongodb objectid di postgres

Dalam dokumentasi Mongodb Objectid dibentuk dengan cap waktu sebagai 4 byte pertama, tetapi ini direpresentasikan dalam heksadesimal. Dengan asumsi bahwa nilai heksadesimal disimpan sebagai string di PostgreSQL, maka kueri berikut hanya akan mengekstrak 8 karakter pertama dari objectid itu, mengonversinya menjadi integer (yaitu detik dari 1970-01-01) lalu mengonversi integer itu menjadi stempel waktu . Misalnya:

SELECT TO_TIMESTAMP(int_val) ts_val
FROM (
    SELECT ('x' || lpad(left(objectid,8), 8, '0'))::bit(32)::int AS int_val
    FROM   (
       VALUES ('507c7f79bcf86cd7994f6c0e') 
       ) AS t1(objectid)
    ) AS t2
;

Mengonversi string heksadesimal ke integer dibahas di sini:Konversi hex dalam representasi teks ke angka desimal



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Memperbarui sejumlah besar catatan dalam koleksi

  2. MongoDB allowDiskUse tidak berfungsi..

  3. Masalah Node + Mongodb + ISODate + Zona Waktu

  4. Tidak dapat terhubung ke server MongoDB di Google Compute Engine dari instance VM kedua

  5. Mongodb dan menyortir sub array