MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да извлечете клеймо за време от mongodb objectid в postgres

В документация на Mongodb Objectid се формира с клеймо за време като първите 4 байта, но това е представено в шестнадесетичен формат. Ако приемем, че шестнадесетичната стойност се съхранява като низ в PostgreSQL, тогава следната заявка ще извлече само първите 8 знака от този objectid, ще го преобразува в цяло число (което е секунди от 1970-01-01), след което ще преобразува това цяло число в времево клеймо . Например:

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
;

Преобразуването на шестнадесетичен низ в цяло число се обсъжда тук:Преобразуване на шестнадесетичен текст в десетично число



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Свойството на MongoDB обект $съществува във вложен масив

  2. Операторът точка не извлича дъщерни свойства на обект Mongoose Document

  3. намиране по $type номер в mongodb

  4. MongoDB подходи за съхраняване на големи количества показатели / аналитични данни

  5. Драйвер на Promise и nodejs MongoDB