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

مشكلة أثناء مقارنة حقل الرقم الفريد id_ في mongodb

Tamim Fahed

السؤال

احاول مقارنة عدد من المستندات من خلال الرقم الفريد لها _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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...