MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongodb pobiera 3-bajtowy licznik z ObjectId

Możesz wypróbować następujący hack, w którym możesz uzyskać równoważną reprezentację ciągu Id obiektu przy użyciu toString() lub toHexString() , użyj parseInt i plaster zdobyć części. Ponieważ cyfry szesnastkowe to połowa bajtu, przesunięcia są dwa razy większe:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. nie powiodło się z otrzymaniem pulsu od członka o tym samym identyfikatorze co my:0

  2. mongodb $addToSet do pola bez tablicy podczas aktualizacji na upsert

  3. Pliki dziennika znajdują się w katalogu dziennika, ale zaczynają się bez włączonej funkcji dziennika

  4. Wyszukaj i posortuj kolekcję zagraniczną

  5. Zmień typ pola w Mongoid bez utraty danych