mongodb嵌套查询错误
需要修改一个数组中的数组包含的数据,我按照网上给的方法,执行时一直报错
按照网上的说法,arrayfilters
中必须包含所有的索引的条件,否则才会报我现在的这个错误,我在arrayfilters
中也包含了所有的索引的条件,但是还是报这个错误,我人都晕了
有没有大佬知道这是什么原因?
报错截图
查询语句
db.exam.updateMany({ _id: ObjectId(id) }, {
$set: {
'students.$[index1].answer.$[index2].score': score
}
}, {
arrayfilters: [
{
'index1.studentId': ObjectId(studentId),
},
{
'index2.id': ObjectId(questionId)
}
]
}, function (err) {
if (err) {
console.error(err);
}
return callback(err);
});
数据表
/* 1 */
{
"_id" : ObjectId("6069b45dbd3b7e2ee83c9959"),
"students" : [
{
"studentId" : ObjectId("60028938310a4d377c1791a9"),
"answer" : [
{
"id" : ObjectId("6069b3e1bd3b7e2ee83c9954"),
"select" : [
1
],
"score" : []
},
{
"id" : ObjectId("6069b3e1bd3b7e2ee83c994d"),
"select" : [
"12",
"366",
"3"
],
"score" : []
},
],
"enterDate" : ISODate("2021-04-07T10:40:30.633Z"),
},
{
"studentId" : ObjectId("60028938310a4d377c1791a8"),
"answer" : [],
"enterDate" : ""
},
],
"examName" : "高等数学",
"date" : ISODate("2021-04-04T12:43:09.093Z"),
"__v" : 0
}