sql >> Database >  >> NoSQL >> MongoDB

Mongodb haalt de 3-byte teller uit een ObjectId

Je zou de volgende hack kunnen proberen, waar je de equivalente tekenreeksrepresentatie van de ObjectId met behulp van toString() of toHexString() , gebruik parseInt en slice om de onderdelen te krijgen. Omdat hexadecimale cijfers een halve byte zijn, zijn de offsets twee keer zo groot:

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. Fout:sluit ETIMEDOUT 54.162.26.95:17185 aan

  2. MongoDB - Gebruik aggregatieframework of mapreduce voor het matchen van reeksen tekenreeksen in documenten (profielovereenkomst)

  3. Waarom krijg je een foutmelding bij het updaten van MongoDb?

  4. Fatale fout:klasse 'MongoDate' niet gevonden bij gebruik van mongodb php-stuurprogramma 1.1.2 en PHP 7.0.2 - Laravel 5.1