MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose:ObjectId-Vergleiche schlagen inkonsistent fehl

Ein gerader == (oder === ) Vergleich vergleicht die beiden Objekte nach Referenz, nicht nach Wert. Das wird also nur dann als wahr ausgewertet, wenn beide auf dieselbe Instanz verweisen.

Stattdessen sollten Sie equals verwenden Methode von ObjectID um ihre Werte zu vergleichen:

story._id.equals(offref.ref)

Wie @bendytree in den Kommentaren anmerkt, können Sie stattdessen Folgendes verwenden, wenn einer der Werte Null sein könnte (und Sie möchten, dass Nullen als gleich verglichen werden):

String(story._id) === String(offref.ref)