Mongodb从ObjectId获取3字节的计数器
Mongodb get the 3-byte counter from an ObjectId
我怎样才能得到
3字节计数器,从一个随机值
开始
part from mongodb ObjectId?
我有一个这样的ObjectId:ObjectId("507 f1f77bcf86cd799439011"
根据mongodb文档:
描述ObjectId()返回一个新的ObjectId值。这个由12ObjectId值包含:
一个4字节的值,表示从Unix纪元开始的秒数,
一个3字节的机器标识符,
2字节的进程id,
和一个3字节的计数器,从一个随机值开始
我想获得"和一个3字节的计数器,从一个随机值开始。"
您可以尝试以下hack,其中您可以使用 toString()
或 toHexString()
获得 ObjectId
的等效字符串表示,使用parseInt
和slice
获得部件。因为十六进制数字是半个字节,所以偏移量是原来的两倍:
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);
}
});
相关文章:
- JQuery使计数器每次更改时都会增加
- Javascript计数器变量未显示正确的值
- 本地存储中的字符串到字节数组转换
- 带有计数器、缩略图、进度条和淡入淡出效果的简单jQuery幻灯片
- 什么's导致了512字节的限制-openkeyval或其他什么
- 如何在for循环中使用计数器
- Javascript替换字节数组序列
- 有效负载字节与实际字节不同
- 如何在Javascript中存储字节数组
- JavaScript代码,用于在浏览器中显示字节数组中的PDF文件(非base64编码)
- 正确使用AES-CTR模式的随机数和计数器
- Javascript猜测游戏-计数器不工作
- Javascript第二计数器
- Jquery:直到寄存器打开的时间计数器
- 如何使用JavaScript创建时间计数器
- Javascript计数器问题
- 类似按钮增量计数器不工作.PHP,AJAX,MySQL,javascript
- 如何正确制作计数器angularjs
- 使用FlipClock js的404页面计数器效果
- Mongodb从ObjectId获取3字节的计数器