اذهب إلى المحتوى

السؤال

نشر

احاول مقارنة عدد من المستندات من خلال الرقم الفريد لها _id . ولكن النتيجة دوماً تظهر بشكل false أو لا يوجد تطابق، حتى ولو كان الحقل له نفس القيمة:

if (userId == custom._id) {
    // لا يتم الدخول أبداً إلى محتوى الشرط
}

مع أن القيم هي نفسها عندما أقوم بطباعتها:

userId: 49bb74fc678713bf6a00456
custom._id: 49bb74fc678713bf6a00456

كيف يمكنني حل هذه المشكلة؟

Recommended Posts

  • 1
نشر

السبب عند مقارنة الرقم الفريد id_ مع id_ آخر يقوم بإظهار false دائماً حتى إذا كانا متشابهين ، لأن المقارنة في mongoose تتم بين عنوان أو مرجع الكائن Object Reference ولا يتم مقارنة سلسلة نص id_ ، ولكي يتم مقارنة سلسلة نص id_ فيمكنك إستخدام دالة ()toString لكي يتم مقارنة سلسلة نص id_ وليس مقارنة عناوين الكائن Object reference

أويمكنك إستخدام دالة ()equals. لمقارنة سلاسل نصوص id_ كما هو موضح في الكود الأسفل

results.userId.equals(AnotherMongoDocument._id)

الآن لديك ثلاثة طرق لعمل مقارنة صحيحة

//بإستخدام دالة toString()
AnotherMongoDocument._id.toString()
// بإستخدام دالة JSON.stringify()
JSON.stringify(AnotherMongoDocument._id)
// بإستخدام دالة equals()
results.userId.equals(AnotherMongoDocument._id)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...