Node.js 为什么FindOneAndUpdate在mongoose中使用$in时不起作用

Node.js 为什么FindOneAndUpdate在mongoose中使用$in时不起作用,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我试图运行以下查询来更新我的一个集合,但它不起作用 const result = await users.findOneAndUpdate({ participants: { "$in": [participant.one, participant.two] }, time:Date.now() }); console.log(result, " result ") 我得到以下错误 Cast to [string] failed

我试图运行以下查询来更新我的一个集合,但它不起作用

    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"
参与者是一个数组,因此您应该使用

如果要筛选参与者数组包含所有给定元素的文档,请使用

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

我想知道为什么错误消息用[]围绕着你的对象,因为参与者是一个数组。它将包括$in在内的整个对象包装在一个数组中,这似乎很奇怪。@Ahmed:你检查过这些参与者.1,参与者.2打印的是什么吗?@whoami是的,它们是正确的筛选值