在做mongoose聚合查询时,_id字段的奇怪字符

我正在运行一个查询来尝试并获得重复的idlogging计数。

“歌曲”是在数据库中仅包含_id字段的子文档。 我运行查询后,我得到这些奇怪的字符在我的控制台输出,我怎么会不能得到实际的idstring,看起来像“555699e4ab3e43ec12accaf9”?

安慰

这些字符是12字节的id 二进制string。 而且它实际上是_id.id_id对象的id属性,它是一个ObjectID 。 你的24字节二进制“555 ..”是_id本身,如果你把它当作一个string,它会自动转换成string。


*有关如何将对象表示为string的更多详细信息: Object.prototype.toString()

不幸的是,对于你来说,无论你使用什么样的IDE,都会将它显示为一个对象(实际上就是这个对象)。

尝试console.log(util.inspect(results)) (确保require util模块)


无论如何, console.log(result[0]._id)会给你24字节的hexstring“5556 … ccaf9”。

如果你不想要_id这是一个对象,也有一个getter id ,它是一个string默认情况下。

 console.log(typeof result[0]._id) //=> "object" console.log(typeof result[0].id) //=> "string"