在做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"