MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongodb récupère le compteur 3 octets d'un ObjectId

Vous pouvez essayer le hack suivant où vous pouvez obtenir la représentation sous forme de chaîne équivalente de ObjectId en utilisant toString() ou toHexString() , utilisez parseInt et slice pour obtenir les pièces. Parce que les chiffres hexadécimaux sont la moitié d'un octet, les décalages sont deux fois plus :

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);                    
    }       
});