假设我按如下方式保存和检索相同的对象
var obj1, obj2;
instance.save(function(err, saved) {
obj1 = saved;
});
Model.find(obj1._id).run(function(err, retrieved) {
obj2 = retrieved;
});
Run Code Online (Sandbox Code Playgroud)
当我打印到控制台时,ObjectIds是相同的.如果我在两个ObjectIds上调用toString它们是相等的.但是做得很直
obj1._id == obj2._id
Run Code Online (Sandbox Code Playgroud)
返回false.这里发生了什么?
Joh*_*yHK 19
ObjectIds是对象,因此标准==相等测试是比较引用的相等性,而不是包含的id值.比较它们的值的正确方法是使用ObjectId.equals:
obj1.equals(obj2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1552 次 |
| 最近记录: |