所以我試圖在我的MongoDB中比較兩個_id。我使用邏輯運算符===
來比較它們。這兩個值是相同的,但它返回false
,這讓我感到瘋狂。邏輯比較對於兩個相等的值返回false
任何人都知道什麼可能會出錯?
THX
所以我試圖在我的MongoDB中比較兩個_id。我使用邏輯運算符===
來比較它們。這兩個值是相同的,但它返回false
,這讓我感到瘋狂。邏輯比較對於兩個相等的值返回false
任何人都知道什麼可能會出錯?
THX
它發生是因爲_id實際上是類型ObjectId。爲了比較兩個ObjectId s你應該使用,而不是equals method。或者,您可以使用toString方法將它們「轉換」爲字符串。
非常感謝你,解決了這個問題!乾杯! –
標識具有相同類型的值?字符串,整數等...?
只是試圖比較你的價值,不檢查的類型像==
操作
三重等號===
或(嚴格等於)performes平等的深刻檢查。
兩個操作數都必須是return true
的確切類型,否則它將返回false,不應用類型強制。
如果你確定它們是平等的,但它是return false
這意味着你可能無意識地應用了一種強制類型。
代碼在哪裏?你在談論什麼樣的價值觀? – Pointy
沒有看到實際的代碼,我們無法幫助您。 '==='對於兩個實際上相同的值來說工作得很好,所以顯然你要麼濫用了某些東西,要麼你的兩個值不一樣。如果您顯示實際的代碼和值,我們只能幫助您。 – jfriend00
2882bdj3728ccc39 === 2882bdj3728ccc39,這些是MongoDB對象ID。理論上它應該回歸真實,但事實並非如此。 –