sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb hämtar 3-byte-räknaren från ett ObjectId

Du kan prova följande hack där du kan få motsvarande strängrepresentation av ObjectId med toString() eller toHexString() , använd parseInt och slice för att få delarna. Eftersom hexadecimala siffror är hälften av en byte är förskjutningarna dubbelt så stora:

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. Vilken är den mest mogna MongoDB-drivrutinen för C#?

  2. Filtrera element i Redis

  3. Hur sorterar en array i en samling

  4. Mongoose findById() i ett objekt av kapslade scheman / underdokument - aggregering