Javascript 阵列筛选器(mongodb)在我的nodejs后端不工作
我在后端使用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
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
。很可能这实际上并没有使用更新的核心驱动程序。我建议查看兼容性矩阵,事实上真正使用。另请参见本部分末尾的注释,如果您“升级”,则可能存在“功能兼容性”设置问题。