2015-01-14 72 views
2

我試圖使用$or運算符,但它返回一個錯誤。

我的代碼:

{db.hw1_1.find({ "name": { $in: ["kamatchi","kamala"] } }) 

它返回答案。但是這個查詢返回錯誤。

{db.hw1_1.find({ "name": { $or: ["kamatchi","kamala"] } }) 

返回:

error: { 
$err: "can't canonicalize query: BadValue unknown operator: $or ", 
"code" : 1787 
} 

回答

7

$in運營商基本上是的條件,只是在一個專門的辦法。所以你可以使用它作爲一個簡短的形式來測試一個值列表,作爲某種類型的對象或正則表達式。

在另一方面$or是更簡潔,所以這將是一樣的$in查詢

db.hw1_1.find({ $or: [{ "name": "kamatchi" }, { "name": "kamala"} ] }) 

所以$in最好是針對單個按鍵測試多個值。將$or想象成分開處理的「查詢列表」,並且只有其中一個查詢需要得到滿足。

+0

謝謝尼爾。我現在知道了 – user3535066