首页 > 解决方案 > 无法读取 Node.js 中 castArrayFilters 处未定义的属性“castForQuery”

问题描述

我在findOneAndUpdate(在mongoose中)中使用arrayFilters作为选项来更新TimetableModel 中nameisRecursive字段的值。这些字段在MongoDb中成功更新,但我也收到异常,该异常被添加到此查询的末尾。

我应该怎么做才能消除这个异常?

以下是我的工作细节:

版本: “mongodb”:“^3.1.13”,“猫鼬”:“^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);
    })

这是例外

“类型错误:无法读取 castArrayFilters 中未定义的属性‘castForQuery’(/Users/user/Desktop/Projects/ParentsPlus/ParentsPlusRepo/parents-plus-back-end/node_modules/mongoose/lib/helpers/update/castArrayFilters.js:59 :37) 在 _castArrayFilters (/Users/user/Desktop/Projects/ParentsPlus/ParentsPlusRepo/parents-plus-back-end/node_modules/mongoose/lib/query.js:1739:5) 在 model.Query.Query._findAndModify ( /Users/user/Desktop/Projects/ParentsPlus/ParentsPlusRepo/parents-plus-back-end/node_modules/mongoose/lib/query.js:3205:3) 在model.Query. (/Users/user/Desktop/Projects/ ParentsPlus/ParentsPlusRepo/parents-plus-back-end/node_modules/mongoose/lib/query.js:2830:8) 在 model.Query。_wrappedThunk [as _findOneAndUpdate] (/Users/user/Desktop/Projects/ParentsPlus/ParentsPlusRepo/parents-plus-back-end/node_modules/mongoose/lib/helpers/query/wrapThunk.js:16:8) 在 process.nextTick ( /Users/user/Desktop/Projects/ParentsPlus/ParentsPlusRepo/parents-plus-back-end/node_modules/kareem/index.js:369:33) at _combinedTickCallback (internal/process/next_tick.js:132:7) at process ._tickCallback (内部/进程/next_tick.js:181:9)"

标签: javascriptnode.jsmongodbmongoose

解决方案


我认为自版本以来存在错误,5.4.4或者可能是另一个先前版本。据报道,这里。目前我通过将猫鼬版本下载到5.3.15.


推荐阅读