[英]Cannot read property 'castForQuery' of undefined at castArrayFilters in Node.js
我使用arrayFilters在findOneAndUpdate(在猫鼬 )选项来更新 TimetableModel 名称和isRecursive领域的价值。 字段在MongoDb中 成功更新,但是我也收到了异常 ,该异常正在此查询的末尾添加。
我应该怎么做才能消除此异常?
以下是我的工作细节:
版本: “ mongodb”:“ ^ 3.1.13”,“ mongoose”:“ ^ 5.4.9”,
这是架构:
const timetableSchema = new Schema({
individualId: {
type: Schema.Types.ObjectId,
required: true
},
date: {
type: Number,
required: false
},
time: []});
这是逻辑:
TimetableModel.findOneAndUpdate({
individualId: req.query.individualId,
date: req.query.date,
}, {
'time.$[i].name': req.query.name,
'time.$[i].isRecursive': req.query.isRecursive,
}, {
arrayFilters: [{
'i.timeSlot': req.query.timeSlot
}],
}, function (err, result) {
if (result) {
resolve(result);
} else if (err) {
reject(err);
}
}).catch((err) => {
reject(err);
})
这是例外
“ TypeError:无法读取castArrayFilters中未定义的属性'castForQuery'(/Users/user/Desktop/Projects/ParentsPlus/ParentsPlusRepo/parents-plus-back-end/node_modules/mongoose/lib/helpers/update/castArrayFilters.js:59 :37)在model.Query.Query._findAndModify(/Users/user/Desktop/Projects/ParentsPlus/ParentsPlusRepo/parents-plus-back-end/node_modules/mongoose/lib/query.js:1739:5)处/Users/user/Desktop/Projects/ParentsPlus/ParentsPlusRepo/parents-plus-back-end/node_modules/mongoose/lib/query.js:3205:3)在model.Query。(/ Users / user / Desktop / Projects /在model.Query._wrappedThunk [as _findOneAndUpdate](/ Users / user / Desktop / Projects / ParentsPlus / ParentsPlusRepo /在process.nextTick(/ Users / user / Desktop / Projects / ParentsPlus / ParentsPlusRepo / parents-plus-back-)上的父母加后端/node_modules/mongoose/lib/helpers/query/wrapThunk.js:16:8)结束/node_modules/kareem/index.js:369:33) t _combinedTickCallback(internal / process / next_tick.js:132:7)在process._tickCallback(internal / process / next_tick.js:181:9)”
我认为这是因为版本错误5.4.4
或也许另一个先前的版本 。 据报道在这里 。 目前,我通过将猫鼬版本下载到5.3.15
解决了该问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.