मेरे पास एक नोड.जेएस एप्लिकेशन है जो कुछ डेटा को खींचता है और इसे किसी ऑब्जेक्ट में चिपका देता है, जैसे:
var results = new Object();
User.findOne(query, function(err, u) {
results.userId = u._id;
}
जब मैं उस संग्रहीत आईडी के आधार पर एक if / if करता हूं, तो तुलना कभी सच नहीं होती है:
if (results.userId == AnotherMongoDocument._id) {
console.log('This is never true');
}
जब मैं दो आईडी का कंसोल करता हूं, तो वे बिल्कुल मेल खाते हैं:
User id: 4fc67871349bb7bf6a000002 AnotherMongoDocument id: 4fc67871349bb7bf6a000002
मैं यह मान रहा हूँ कि यह किसी प्रकार की डेटाटाइप समस्या है, लेकिन मुझे यकीन नहीं है कि कैसे परिणाम को परिवर्तित किया जा सकता है। आईसेट को एक डेटाटाइप में परिवर्तित किया जाएगा, जिसके परिणामस्वरूप उपरोक्त तुलना सही होगी और मेरा आउटसोर्स मस्तिष्क (उर्फ Google) मदद करने में असमर्थ रहा है।
.equals()
: mongodb.github.io/node-mongodb-native/api-bson-generated/…