我正在运行查询以尝试获取重复ID记录的计数。
"曲"是一个子文档,它只包含数据库中的_id字段。在我运行查询后,我在控制台输出中得到这些奇怪的字符,为什么我无法获得看起来像的实际id字符串," 555699e4ab3e43ec12accaf9"?
答案 0 :(得分:2)
这些字符是12字节id 二进制字符串。
它实际上是 _id.id
,即id
对象上的_id
属性ObjectID。
你的24字节二进制" 555 .."是_id
本身,如果您将其用作一个字符串,它会自动转换为字符串。
*有关如何将对象表示为字符串的更多详细信息:Object.prototype.toString()
不幸的是,无论你使用什么IDE,它都将它显示为一个对象(实际上它实际上是它)。
尝试console.log(util.inspect(results))
(务必require
util
模块)
在任何情况下,console.log(result[0]._id)
都会为您提供24字节的十六进制字符串" 5556 ... ccaf9"。
如果您不想要作为对象的_id
,那么默认情况下还有一个getter id
,它是一个String。
console.log(typeof result[0]._id) //=> "object"
console.log(typeof result[0].id) //=> "string"