我必须为从数据库返回的对象添加属性,然后再将其推送到数组。更改属性有效,但添加新属性无效。任何人都可以解释这种行为背后的逻辑吗?
ids.forEach(async (id, index) => {
//get object without highlight property
let real_a = await database.getA(id)
real_a.highlight = "shoud add highlight property to real_a object"
realItems.push(real_a)
// the correct string is printed
console.log(real_a.highlight)
//object still doesn't have that property
console.log(real_a)
}
答案 0 :(得分:0)
这是预期的行为。很抱歉打扰。
我正在对数据库.getA(id)函数使用mongodb查询,事实证明,您必须在mongodb查询中指定一个参数才能获取实际的可更改JSON对象。
这是完整的答案:
Why can't you modify the data returned by a Mongoose Query (ex: findById)