【发布时间】:2020-03-19 13:50:21
【问题描述】:
我目前正在使用数组过滤器来更新嵌套对象。 我的结构是 -
Category Collection -
{
name:Disease,
_id:ObjectId,
subCategory:[{
name:Hair Problems,
_id:ObjectId,
subSubCategory:[{
name: Hair Fall,
_id:ObjectId
},{
name: Dandruff,
_id:ObjectId
}]
}]
}
我想使用数组过滤器更新 id 为 1.1.1 的子子类别。
let query = { 'subCategories.subSubCategories._id': subSubId };
let update = { $set: { 'subCategories.$.subSubCategories.$[j]': data } };
let option = { arrayFilters: [{ 'j._id': subSubId }], new: true };
await Categories.findOneAndUpdate(query, update, option
此代码运行良好,但数组过滤器更改了 subsubCategory 的对象 ID。在不更改 ObjectId 的情况下是否有其他替代方法。
提前致谢
【问题讨论】:
-
您要准确更新哪个属性?
-
用户可以更新 subsubCategory @AmitDas 中存在的任何属性
标签: javascript node.js mongodb mongoose mongoose-schema