sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongodb får 3-byte-tælleren fra et ObjectId

Du kan prøve følgende hack, hvor du kan få den tilsvarende strengrepræsentation af ObjectId ved hjælp af toString() eller toHexString() , brug parseInt og slice for at få delene. Fordi hex-cifre er halvdelen af ​​en byte, er forskydningerne dobbelt så meget:

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. Hvorfor tilføjer mit skema ikke standardværdier i mongoose-arrays?

  2. Hvad er gode måder at få aktuelle brugerdetaljer på i modeller?

  3. Har brug for hjælp til konceptualisering i Redis/NoSQL

  4. activerecord og mongo / mongo-mapper bridge