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

Mongodbは、ObjectIdから3バイトのカウンターを取得します

    次のハックを試して、 ObjectId toString()<を使用する/ code> またはtoHexString() parseIntを使用します およびslice 部品を入手します。 16進数はバイトの半分であるため、オフセットは2倍になります。

    db.collection("collectionName").findOne({}, function(err, result) {     
        if (result) {
            var id          = result._id.toString(), ctr = 0;
            var timestamp   = parseInt(id.slice(ctr, (ctr+=8)), 16);
            var machineID   = parseInt(id.slice(ctr, (ctr+=6)), 16);
            var processID   = parseInt(id.slice(ctr, (ctr+=4)), 16);
            var counter     = parseInt(id.slice(ctr, (ctr+=6)), 16);
            console.log(id);
            console.log(timestamp);
            console.log(machineID);
            console.log(processID);
            console.log(counter);                    
        }       
    });
    



    1. サーバーがSASL認証ステップでエラーを返しました:認証に失敗しました

    2. Dictionary <DateTime、T>をBSONにシリアル化するときのBsonSerializationException

    3. Spring-data-mongoがコンストラクターを使用してjava.util.Listをインスタンス化できません

    4. マングース-グループ化してデータを入力する方法は?