new Mongo.ObjectID('18986769bd5eaaa42cb565b1') == new Mongo.ObjectID('18986769bd5eaaa42cb565b1')
返回假
new Mongo.ObjectID('18986769bd5eaaa42cb565b1').toString() == new Mongo.ObjectID('18986769bd5eaaa42cb565b1').toString()
返回true
这是错误,功能还是仅需要使用valueOf()进行处理,并在需要使用数据库时将其从字符串转换回去?
答案 0 :(得分:1)
这是完全正常的,因为即使两个对象包含相同的信息,它们也不相等。您需要遍历所有属性并分别进行比较。
console.log({} === {});
示例
const obj1 = {id: 12345}
const obj2 = {id: 12345}
console.log(obj1 === obj2);
let same = true;
for(const prop in obj1){
if(obj2.hasOwnProperty(prop) && obj1[prop] !== obj2[prop]){
same = false;
break;
}
}
console.log(same);
答案 1 :(得分:1)
您应该看看这个question,它可能会解决您的问题。基本上,他们说您需要使用您正在使用的
的mongo库提供的equals方法。答案 2 :(得分:0)
这是因为MongoDB完全基于JSON,因此即使特定信息本身就是字符串,Mongo仍会将其作为JSON对象提供。因此,您需要将其解析回字符串形式,以便可以在其他地方使用它。