Javascript 阵列筛选器(mongodb)在我的nodejs后端不工作

Javascript 阵列筛选器(mongodb)在我的nodejs后端不工作,javascript,node.js,mongodb,express,mongojs,Javascript,Node.js,Mongodb,Express,Mongojs,我在后端使用nodejs。获得以下查询: db.conversations.update( { convoId: convoId }, { $set: { "ids.$[elem].read" : true } }, { arrayFilters: [ { "elem.id": userId } ] }, (err, data) => { if(err) { res.send(err); } console.log(data

我在后端使用nodejs。获得以下查询:

db.conversations.update( 
    { convoId: convoId },
    { $set: { "ids.$[elem].read" : true } },
    { arrayFilters: [ { "elem.id": userId } ] }, (err, data) => {
    if(err) {
        res.send(err);
    }
    console.log(data);
    res.json(data);
});
现在在前端,当查询完成时,我返回错误:

"No array filter found for identifier 'elem' in path 'ids.$[elem].read'"
我读到,如果mongodb版本低于3.6,数组过滤器就不能工作,所以我更新了它,但它仍然给我同样的错误


有人知道我做错了什么吗?

看起来npm mongodb版本是2.*因为它使用的是驱动程序3.4.2版本。请将mongodb软件包升级到3.0.2以上版本,以便使用3.6 mongodb功能

我在你问题的标签中看到了
mongojs
。很可能这实际上并没有使用更新的核心驱动程序。我建议查看兼容性矩阵,事实上真正使用。另请参见本部分末尾的注释,如果您“升级”,则可能存在“功能兼容性”设置问题。