如何通过ID更新索引对象数组

时间:2019-07-17 23:25:18

标签: javascript arrays node.js mongodb

我有对象数组的ID,我想用后端上已有的信息更新信息。

我的代码删除了每个数组,并使用新信息创建了一个新数组。

我想使用变量ID访问数组,然后更改其值:

Functor

1 个答案:

答案 0 :(得分:0)

如果您有要更新的项目的ObjectId,则代码应如下所示:

User.products.findOneAndUpdate(
{ _id: ID, "products._id": <here goes id for an array element> },
{
    $set: {
    "products.$": {
        name: product_name,
        productDescription: product_Description,
        pricePerUnit: price_PerUnit,
        productAmmount: product_Ammount
    }
    }
},
err => {
    if (err) throw console.log("found errors");
    console.log("no errors");
}
);

另外,当您要更新子文档时,您必须意识到这种情况下需要提供一个数组元素的特定ID。