2017-04-24 96 views
-3

所以我試圖在我的MongoDB中比較兩個_id。我使用邏輯運算符===來比較它們。這兩個值是相同的,但它返回false,這讓我感到瘋狂。邏輯比較對於兩個相等的值返回false

任何人都知道什麼可能會出錯?

THX

Those to are the logged id's and false return value

+4

代碼在哪裏?你在談論什麼樣的價值觀? – Pointy

+0

沒有看到實際的代碼,我們無法幫助您。 '==='對於兩個實際上相同的值來說工作得很好,所以顯然你要麼濫用了某些東西,要麼你的兩個值不一樣。如果您顯示實際的代碼和值,我們只能幫助您。 – jfriend00

+0

2882bdj3728ccc39 === 2882bdj3728ccc39,這些是MongoDB對象ID。理論上它應該回歸真實,但事實並非如此。 –

回答

1

它發生是因爲_id實際上是類型ObjectId。爲了比較兩個ObjectId s你應該使用,而不是equals method。或者,您可以使用toString方法將它們「轉換」爲字符串。

+0

非常感謝你,解決了這個問題!乾杯! –

0

標識具有相同類型的值?字符串,整數等...?

只是試圖比較你的價值,不檢查的類型像==操作

0

三重等號===或(嚴格等於)performes平等的深刻檢查。

兩個操作數都必須是return true的確切類型,否則它將返回false,不應用類型強制。

如果你確定它們是平等的,但它是return false這意味着你可能無意識地應用了一種強制類型。

相關問題