Suppose I save and retrieve identical objects as follows
var obj1, obj2;
instance.save(function(err, saved) {
obj1 = saved;
});
Model.find(obj1._id).run(function(err, retrieved) {
obj2 = retrieved;
});
When I print to the console, ObjectIds are the same. If I call toString on both ObjectIds they are equal. However doing a straight
obj1._id == obj2._id
Returns false. What is happening here?
ObjectIds are objects so a standard == equality test is comparing the references for equality, not the contained id values. The right way to compare their values is to use ObjectId.equals as:
obj1.equals(obj2)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With