javascript - 有没有办法通过 javascript/jquery 将 Mongo ObjectId 转换为字符串

标签 javascript c#

enter image description here

enter image description here

是否可以将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/

相关文章:

javascript - 如何在线性时间内按绝对值重新排序排序数组?

JavaScript 检查总和是否正确

c# - 如何在不更改调用方的情况下捕获 C# 静态字符串资源属性的名称?

c# - 如何进行多线程安全的原子对象创建和交换

JavaScript Google Visualization API 多个图表数据显示在错误的图表中

javascript - 如何通过函数阻止激活 mousedown 事件?

javascript - 如何在两个 div 之间建立关系,一个包含产品和其他选项

c# - 将通用字符串列表从处理程序返回到 JS 数组

c# - 在 C# 中将 bool[] 装箱到 object[] 的正确方法

c# - 迭代参数,调用方法并将结果传递给另一个函数