是否可以将mongo objectId转换为字符串。
上面的图片显示了我收到并在控制台中显示的数据。我需要字符串形式的 id 值。但是 ObjectId 作为对象返回
在数据库中,ID 看起来像这样 - 565d3bf4cefddf1748d1fc5e -objectId,我需要像这样的 id -
最佳答案
根据 Mongo 文档:
- 一个 4 字节值,表示自 Unix 纪元以来的秒数,
- 3 字节机器标识符,
- 2 字节进程 ID,以及
- 一个 3 字节计数器,以随机值开始。
您可以在这里查看:https://docs.mongodb.org/manual/reference/object-id/
所以在 javascript 中你可以做这样的事情。
var mId = {
Timestamp:1448950573,
Machine:13565407,
Pid:1756,
Increment:8888962
};
function getId(mongoId) {
var result =
pad0(mongoId.Timestamp.toString(16), 8) +
pad0(mongoId.Machine.toString(16), 6) +
pad0(mongoId.Pid.toString(16), 4) +
pad0(mongoId.Increment.toString(16), 6);
return result;
}
function pad0(str, len) {
var zeros = "00000000000000000000000000";
if (str.length < len) {
return zeros.substr(0, len-str.length) + str;
}
return str;
}
console.log(getId(mId))
它生成“565d3b2dcefddf06dc87a282”,这并不完全是您拥有的ID,但这可能只是一个调整,或者我正在使用不同的数据:D。
编辑
添加了填充功能,以便零不会被 chop 。
希望有帮助
关于javascript - 有没有办法通过 javascript/jquery 将 Mongo ObjectId 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34058200/