MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tạo MongoDB ObjectID từ ngày trước bằng trình điều khiển PHP

Hiện tại, trình điều khiển PHP không có chức năng nào được tích hợp sẵn cho việc này, __set_state () mà câu trả lời khác đã đề cập chỉ để có thể giải mã phiên làm việc và không cho phép bạn tạo nó thông qua các thành phần cụ thể.

Bạn sẽ phải làm những việc sau để tự động tạo ID:

<?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. Lập lịch sự kiện (cronjob) trong MongoDB?

  2. Định cấu hình Mongo bằng mongodb + srv

  3. MongoDB hoặc CouchDB - phù hợp để sản xuất?

  4. Mongoose tìm mười mục cuối cùng trong cơ sở dữ liệu

  5. Hộ chiếu Facebook với JWT