[英]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.