sql >> データベース >  >> NoSQL >> MongoDB

PHPドライバーを使用して過去の日付からMongoDBObjectIDを作成します

    現在、PHPドライバーにはこのための機能が組み込まれていません。__set_state()は、IDをセッション逆シリアル化できるようにするためだけのものであり、特定のコンポーネントを介して作成することはできません。

    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. MongoDBの配列内のフィールドの合計を検索します

    2. Mongoの$pull複数オブジェクトが機能しない

    3. MongoCredentialおよび未分類のMongoDb例外の認証の例外

    4. MongoDBの集計を使用して、$および/ $またはに基づいてフィルタリングする方法は?