如何组合在Mongodb中不存在和不匹配

时间:2018-04-02 11:37:29

标签: mongodb mongoose

我一直试图找出如何告诉mongodb过滤所有属性不存在或属性与特定id不匹配的元素。

这是我到目前为止所拥有的。当我添加关于not elemMatch的第二个条件时,它无效。

    bookLendingHistory = {
      $or: [
        { 'lendHistory.borrowerId': { $exists: false } },
        { 'lendHistory.borrowerId': { $not: { $elemMatch: mongoose.Types.ObjectId(id) } } },
      ],
    };

非常感谢。 :)

1 个答案:

答案 0 :(得分:2)

您不需要$not$elemMatch

我相信这可以解决你的问题:
{'lendHistory.borrowerId':{ $ne: ObjectId("123456789012345678901234") } }

这将为您提供与ObjectId不匹配的所有文件,包括没有该字段的文件。