我正在嘗試將常規 MongoDB 查詢運算子與$or運算符結合使用,但得到了意想不到的結果。
假設我有這些記錄:
[
{
"foo": "foo",
"bar": "bar",
"baz": null
},
{
"foo": "foo",
"bar": "rab",
"baz": "zab"
}
]
如您所見,它們共享foo價值,但在價值bar和baz價值上有所不同。
如果我運行此查詢:
{
"foo": "foo",
"$or": [
{
"bar": "bar",
"baz": "baz"
}
]
}
我沒有結果。任何想法為什么?我希望它與我的第一個檔案相匹配。
但是,如果我運行此查詢,該查詢僅包含$or塊內的單個運算式:
{
"foo": "foo",
"$or": [
{
"bar": "bar"
}
]
}
我確實在第一個檔案上找到了匹配項。從檔案中可以看出,$or運算子需要兩個或多個運算式。這意味著它可能只是將$or具有單個運算式的查詢作為正常運算式進行評估。
uj5u.com熱心網友回復:
你遇到的問題是因為你如何在你的 中使用運算式$or,你給了他一個單一的運算式物件并期望他or對那個運算式做邏輯,這不是它的作業原理。
你要做的就是給他多個表情,像這樣:
{
"foo": "foo",
"$or": [
{
"bar": "bar",
},
{
"baz": "baz"
}
]
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/369057.html
