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

Buat MongoDB ObjectID dari tanggal di masa lalu menggunakan driver PHP

Saat ini, driver PHP tidak memiliki fungsionalitas bawaan untuk ini, __set_state() yang disebutkan oleh jawaban lain hanya untuk dapat mendeserialisasi sesi ID dan tidak memungkinkan Anda membuatnya melalui komponen tertentu.

Anda harus melakukan hal berikut untuk membuat ID secara otomatis:

<?php
function createId( $yourTimestamp )
{
    static $inc = 0;

    $ts = pack( 'N', $yourTimestamp );
    $m = substr( md5( gethostname()), 0, 3 );
    $pid = pack( 'n', posix_getpid() );
    $trail = substr( pack( 'N', $inc++ ), 1, 3);

    $bin = sprintf("%s%s%s%s", $ts, $m, $pid, $trail);

    $id = '';
    for ($i = 0; $i < 12; $i++ )
    {
        $id .= sprintf("%02X", ord($bin[$i]));
    }
    return new MongoID($id);
}

var_dump( createId( time() ) );
?>


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Gabungkan teks lengkap dengan indeks lainnya

  2. ScaleGrid Mengumumkan Hosting MongoDB Bersama di Amazon AWS

  3. MongoDB C#:Serialisasi ID pola terbaik

  4. Mencari Tanggal dan Mengabaikan waktu di mongoDB

  5. urutan byte tidak valid dalam US-ASCII (Ruby 1.9 + rails 2.3.8 + mongodb + mongo_mapper)