提问:关于给mongoose返回的json数据增加属性的问题
发布于 11 年前 作者 pauky 7827 次预览 最后一次回复是 11 年前 来自 问答
Users.find(id, function (err, users) {
var i = 0;
for (; i < users.length; i += 1) {
users[i].name = 'kk';
}
console.log(users); //结果没有增加name这个属性
JSON.stringify(users); //结果也没有出现name
});
如果是修改属性就可以。 请问下为什么会出现这种情况呢?
10 回复
请调整下 Markdown 语法 http://www.bluesdream.com/blog/markdown-cheatsheet-syntax-manual.html
users的数据是什么需要的说明一下… 确实很奇怪把
console.log(users[0])结果贴上来看看。mongoose查询出来的其实不是你的User Object,只是mongoose的model,所以对它赋值没有任何用处。 理论上要这么玩:@saionjisekai 求问这个图片内容是用啥工具看到的
@eeandrew - - ,WebStorm打个断点…
http://www.nuonuo.me/2014/10/18/How-to-get-array-of-json-objects-rather-than-mongoose-documents/
看下这个文章,应该可以解决你的问题
用
toObject()进行转换哈哈,感谢大家的热情。我测试了下,3楼saionjisekai的方法是对的。谢谢。 6楼jiangli373的方法我也做了下,
请问:toObject()后的对象无法序列化,这又是怎么回事呢?
toObject()是mongoose返回文档(user)的方法,不是文档数组(users)的方法…
厉害,我也遇到过这个问题,现在看到这些解决办法,再看看自己的傻办法。,早知道我了发个贴子问一下。 贴上我的方法