我试图在Mongo中扩展我的否定搜索。
我用这个:
db.name.find({"name":/^((?!Ford).)/, $exist : true});
这很有效。返回名称字段不包含单词或单词的所有文档"福特"在这个例子中。
但是,有些文件没有密钥" name"我也希望得到那些文件。在上面的示例中,我想要获取所有不包含单词" Ford"在一个名称和文件中的关键"名称"根本不存在。
我尝试使用$exist : false
,但这并没有给出我期望的结果。
答案 0 :(得分:1)
解决!
我们没有使用'$or'
运算符,这就是为什么它不适用于$exists => false
这是解决方案:
db.getCollection('name').find({
$or: [ { "name": { $exists: false } },
{ "name":/^((?!Ford)}
]);