Product
.findAll()
.then((products) => {
/* Perform operations */
}
上面的查询返回一个产品数组。例如,
[
{
name: Mobile,
price: 10000
},
{
name: Laptop,
price: 20000
},
]
我需要对products数组进行一些更改(基于现有字段的值添加新字段,并删除那些现有字段)。我尝试了几种方法,但是都没有用:
products.forEach((product) => {
product.[updatedPrice] = updatedPrice;
delete product[price];
}
Array.map()也不起作用。
以下方法有效,但我不知道其背后的工作及其发生的原因。另外,如何使用该字段删除字段。
products.forEach((product) => {
product.set('updatedPrice', updatedPrice, {strict: false})
}
答案 0 :(得分:1)
这里要注意的是,在.then((products)
产品对象中,这里的对象不是JSON对象,而是Mongoose Document对象,并且您使用的set方法是由mongoose定义的。您可以在这里https://mongoosejs.com/docs/guide.html#strict
使用lean()
(返回一个普通的js对象)
Product.findAll()。lean()
。then((products)=> {
/ *执行操作* /
});
在产品对象上使用toJSON()
方法将猫鼬对象转换为js对象
Product.findAll()。then((products)=> {
产品=产品。toJSON()
;
/ *执行操作* /
});
谢谢