+-
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 }