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 回复
mongoose
查询出来的其实不是你的User Object
,只是mongoose
的model
,所以对它赋值没有任何用处。
理论上要这么玩:
User.find({age: 24}, function(error, users){
console.log(users);
users.forEach(function(user, index){
user._doc.name = 'Test' + index;
});
console.log(users);
});
哈哈,感谢大家的热情。我测试了下,3楼saionjisekai的方法是对的。谢谢。 6楼jiangli373的方法我也做了下,
Users.find(id, function (err, users) {
var i = 0,
mo = users.toObject();
for (; i < mo.length; i += 1) {
mo[i].name = 'kk';
}
console.log(mo); //结果显示增加了name这个属性
console.log(JSON.stringify(mo)); //不显示任何数据,好像无法序列化的样子
});
请问:toObject()后的对象无法序列化,这又是怎么回事呢?