2016-02-11 48 views
2

我試圖擴展我在Mongo中的負面搜索。MongoDB中的負面搜索

我使用這個:

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

這工作。在本例中,返回名稱字段不包含單詞或單詞「Ford」的所有文檔。

但是,一些文件沒有關鍵的「名」,我也希望得到的文檔。在上面的例子中,我想獲取名稱中不包含單詞「Ford」的所有文檔,並且還記錄根本不存在關鍵「名稱」的文檔。

我試着用$exist : false,但並沒有給我所期望的結果。

+0

的方式來解決自己的問題。我建議添加您的答案作爲答案並接受它。 – metame

+1

當你自己找到答案時,請爲你自己的問題寫一個答案。這不僅僅是允許在stackoverflow上,它甚至鼓勵以這種方式分享你的知識。 – Philipp

+0

對不起,我不知道那個角色。 – PottaG

回答

1

已解決!

我們沒有使用'$or'運營商,這就是爲什麼它沒有與$exists => false

在這裏工作是解決:

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