首页 > 解决方案 > (在猫鼬中使用 $pull 和 $each)为什么我们不能同时使用两者?_ NodeJs mongoDB

问题描述

也许我的问题是愚蠢的,或者我不知道如何使用 $ each。我有一个 ID 数组,我想从一个包含数组字段的文档中提取。

let my_list = ['1', '2', '6', '432']
foo.findOneAndUpdate({
        _id: "some_id",
    },
        {
            $pull: { access_to: { $each: my_list } }
        }
    ));

但我收到此错误:

不能将 $each 与数组一起使用。

但是为什么我们不能同时使用这两个 $ 运算符呢?

标签: node.jsmongodbmongoose

解决方案


使用 $pullAll 代替:

https://docs.mongodb.com/manual/reference/operator/update/pullAll/

foo.findOneAndUpdate({
        _id: "some_id",
    },
        {
            $pullAll: { access_to: my_list  }
        }
    ));

推荐阅读