我在Nodejs中使用mongoDB (2.2.36版)。问题是,当我尝试使用数组更新时,有一个错误“没有为路径中的标识符‘竞争对手’找到数组过滤器...",但当我在mongo shell中尝试它时,一切正常。nodejs中的代码:
db.get().collection(collectionName).update({ _id: ObjectID(id) }, {$inc: {
"votesCount": 1,
"rivals.$[rival].votes": 1
},
}, { arrayFilters: [{ "rival.id": voteModel.answerId }]}, function (err, docs) {
cb(err, docs);
});我尝试更新版本,但2.2.36是最新版本。
发布于 2020-06-21 14:58:39
MongoDB Node.JS驱动程序版本2.2.36在update method中不支持数组筛选器。
从3.0版开始,update提供了arrayFilters选项。
您需要升级驱动程序才能使用该选项。
https://stackoverflow.com/questions/62488971
复制相似问题