无法获取 mongoose find和findOne方法返回的结果对象中的属性值,总是undefined
发布于 8个月前 作者 VeepC 1137 次浏览

用mongoose操作mongodb,find以及findOne方法查找到的结果集中无法取到其具体的属性值,可以输出整个对象,也可以获取 _id 的值,但是获取其他的属性时一直是undefined,请看代码: userModel.findOne({}, function (err, re) { console.log(re, re._id, re.uname); }); 输出结果如下 { _id: 539085aa8abcc1a838389be2, uname: 'zhansan11’, password: ‘12345611’ __v: 0 } 539085aa8abcc1a838389be2 undefined

stackoverflow上有类似的提问,但是貌似说要用 Mongoose QueryStreams.的方法来获取,不大明白 http://stackoverflow.com/questions/11721641/find-results-of-attributes-in-mongodb-are-always-undefined http://stackoverflow.com/questions/16677615/objects-returned-by-mongoose-queries-have-no-attributes

7 回复

装个webstorm debug看看 re是什么对象结构,console有时候不够用,find查出来应该是个数组,findOne是个对象。但是对象结构我忘了,自己debug断点看啊

console.dir(re) 打印出来看看

re的结构就是个对象啊,find返回的是对象数组,findOne的结果集就是对象,只有一个,结构已经打印出来了啊

跟console.log(re)是一样的结果

@VeepC 我说了,你可以装个webstorm,然后debug可以看看re的详细结构,你就知道该怎么取值了

@racyily 多谢解答!问题解决了,是我之前的Schema结构的问题,不是取值方式的问题,另外find和findOne的返回值的结构是没有问题的,console一下就知道的,倒不用装webStrom…

请问是怎么搞的 ? 我也遇到这个问题了 。大神。

回到顶部