2012-05-16 19 views
8

varsayalım ben kaydetmek ve ben konsola yazdırırkenMongooseJS ObjectIds neden eşitlik sınama başarısız?

var obj1, obj2; 

instance.save(function(err, saved) { 
    obj1 = saved; 
}); 

Model.find(obj1._id).run(function(err, retrieved) { 
    obj2 = retrieved; 
}); 

, ObjectIds aynıdır şöyle özdeş nesneleri almak. Her iki ObjectIds'ta toString'i çağırırsam eşittir. Ancak bir

Bir yanlışlık döndürür. Burada ne oluyor?

cevap

19

ObjectIds nesnelerdir, böylece standart == eşitlik testi, içerilen id değerleri değil, eşitlik referansları ile karşılaştırılır. Değerlerini karşılaştırmanın doğru yolu, ObjectId.equals öğesini aşağıdaki gibi kullanmaktır:

obj1.equals(obj2) 
İlgili konular