首页 > 解决方案 > 为什么 FindOneAndUpdate 在使用 $in 时不能在猫鼬中工作

问题描述

我正在尝试运行以下查询来更新我的集合之一,但它不起作用

    const result = await users.findOneAndUpdate({
    participants: {
        "$in": [participant.one, participant.two]
    },
    time:Date.now()


   });
   console.log(result, " result ")

我收到以下错误

 Cast to [string] failed for value "[{"$in":["****","****"]}]" at path "participants"

标签: node.jsmongodbmongoose

解决方案


participants是一个数组,所以你应该使用数组查询运算符

如果要过滤participants数组包含所有给定元素的文档,请使用

participants: {
    "$all": [participant.one, participant.two]
},

推荐阅读