gpt4 book ai didi

node.js - Mongoose ob​​jectid 到数字

转载 作者:搜寻专家 更新时间:2023-10-31 22:27:27 24 4
gpt4 key购买 nike

如何将 ObjectId 转换为数字?在我的应用程序中,我在客户端使用最新的 Mongoose 版本和主干。

我的问题是 ObjectId 总是被放在引号之间,这导致在我的 jade 模板和我的客户端上出现双引号,如“233453452534”。


编辑:

我正在查询 mongodb

this.users.find({},function(err,docs){
cb(null,docs)
})

console.log(docs) 显示

{ name: 'test',
_id: 5220bc207f0c866f18000001,
__v: 0 }

在我的模板中

option(data-id=val._id) #{val.name}

我将其传递给 res.render

res.render('test.jade',docs)

和我的 html 渲染:

""5220bb43b754af4118000001""

用双引号将我的对象 ID 括起来。我尝试在模式中设置一个数字并且这有效,如果它是一个数字则没有引号,所以我猜这是因为它是一个 objectID。

最佳答案

这是未经测试的,但我想你会想做这样的事情:

var idNum = parseInt(objectId.valueOf(), 16);

MongoDB ObjectIDs本质上是 12 字节的十六进制字符串。这使得它们大于 JavaScript 数字 (2^53) 的 MAX_VALUE,因此您可能会遇到转换错误。 但是,我的 node.js 环境 (0.11.6) 中的 Number.MAX_VALUE 似乎可以处理该值。所以你可能是安全的......

为什么要将对象 ID 转换为数字?您真的不应该对 ObjectId 执行算术运算...

关于node.js - Mongoose ob​​jectid 到数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18543790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com