匹配与字段对不匹配的文档

时间:2015-12-24 09:44:46

标签: mongodb

我的文档包含ab字段(以及其他一些额外字段)。我有ab,字段的值对列表,我希望匹配所有没有ab字段的MongoDB文档作为给定列表中的任何一对字段。因此,如果MongoDB数据库中的文档是:

{a: 1, b: 2, c: 3}
{a: 4, b: 5, c: 6}
{a: 7, b: 8, c: 9}
{a: 1, b: 8, c: 10}

我的列表是[{a: 1, b: 2}, {a: 7, b: 8}],我想做一个只返回第二个和最后一个文档的查询。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

在查询中使用 $nor 运算符,该运算符对一个或多个查询表达式的数组执行逻辑NOR运算,并选择使数组中所有查询表达式失败的文档:

var arr = [{a: 1, b: 2}, {a: 7, b: 8}];
db.test.find({ "$nor": arr });

答案 1 :(得分:1)

以下将过滤具有任何已定义值的文档

db.delme.find({
    $nor : [
        {$nor: [{a :{$ne: 1}},{b: {$ne: 2}}]},
        {$nor: [{a :{$ne: 7}},{b: {$ne: 8}}]}
    ]
})

以下将过滤具有已定义的配对

的文档
org.eclipse.ui.commands