以下是模式
export const publicTaskSchema = new Schema({
task: { required: true, type: String },
user: {
_user: { type: String, required: true },
userName: { type: String, required: true },
},
likes: {
users: [{
_user: { type: String, required: true },
userName: { type: String, required: true },
}],
},
comments: [{
user: {
_user: { type: String, required: true },
userName: { type: String, required: true },
}
}],
});
export const publicTaskListSchema = new Schema({
tasks: { required: true, type: [publicTaskSchema], default: null },
totalTasks: { required: true, type: Number, default: 0 },
});
我所要做的就是更新嵌套数组中的属性.
为此,我try 将位置运算符与数组筛选器一起使用,以更新满足要求的所有任务.
const updated = await PublicTaskList.updateMany<PublicTaskListType>(
{},
{
$set: {
"tasks.$[].comments.$[user].userName": req.user.profile?.userName,
},
},
{ arrayFilters: [{ "user.user._user": req.user._user }], new: true }
).exec();
我得到的只是这个回答
{已确认:错误}