MongoDB中的否定搜索

时间:2016-02-11 14:24:43

标签: mongodb mongodb-query

我试图在Mongo中扩展我的否定搜索。

我用这个:

db.name.find({"name":/^((?!Ford).)/, $exist : true});

这很有效。返回名称字段不包含单词或单词的所有文档"福特"在这个例子中。

但是,有些文件没有密钥" name"我也希望得到那些文件。在上面的示例中,我想要获取所有不包含单词" Ford"在一个名称和文件中的关键"名称"根本不存在。

我尝试使用$exist : false,但这并没有给出我期望的结果。

1 个答案:

答案 0 :(得分:1)

解决!

我们没有使用'$or'运算符,这就是为什么它不适用于$exists => false

这是解决方案:

db.getCollection('name').find({ 
                             $or: [ { "name": { $exists: false } }, 
                                    { "name":/^((?!Ford)}
                                  ]);