MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak wyodrębnić znacznik czasu z obiektu mongodb w postgresie?

W dokumentacji Mongodb Objectid jest tworzony ze znacznikiem czasu jako pierwsze 4 bajty, ale jest to reprezentowane w systemie szesnastkowym. Zakładając, że wartość szesnastkowa jest przechowywana jako ciąg znaków w PostgreSQL, następujące zapytanie wyodrębni tylko pierwsze 8 znaków tego obiektu, przekonwertuje je na liczbę całkowitą (czyli sekundy od 1970-01-01), a następnie przekonwertuje tę liczbę całkowitą na znacznik czasu . Na przykład:

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
;

Konwersja ciągu szesnastkowego na liczbę całkowitą jest omówiona tutaj:Konwertuj szesnastkę w reprezentacji tekstowej na liczbę dziesiętną



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nie można uruchomić usługi MongoDB 3.0.2 na CentOS 7

  2. Czy jest jakiś sposób na zaimplementowanie paginacji w wiosennym webfluxie i wiosenne dane reaktywne?

  3. Zaktualizuj wiele elementów w tablicy w mongodb

  4. API Connect pokazuje błąd Cannot GET /apim/ podczas aktualizacji schematu

  5. Czy wykonanie częściowej aktualizacji dokumentu MongoDb w WiredTiger zapewnia jakąkolwiek przewagę nad pełną aktualizacją dokumentu?