执行mongoose聚合查询时_id字段的奇怪字符

时间:2015-05-16 01:25:26

标签: node.js mongodb mongoose

我正在运行查询以尝试获取重复ID记录的计数。

"曲"是一个子文档,它只包含数据库中的_id字段。在我运行查询后,我在控制台输出中得到这些奇怪的字符,为什么我无法获得看起来像的实际id字符串," 555699e4ab3e43ec12accaf9"?

console

1 个答案:

答案 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"