Tamim Fahed نشر 24 يونيو 2021 أرسل تقرير نشر 24 يونيو 2021 احاول مقارنة عدد من المستندات من خلال الرقم الفريد لها _id . ولكن النتيجة دوماً تظهر بشكل false أو لا يوجد تطابق، حتى ولو كان الحقل له نفس القيمة: if (userId == custom._id) { // لا يتم الدخول أبداً إلى محتوى الشرط } مع أن القيم هي نفسها عندما أقوم بطباعتها: userId: 49bb74fc678713bf6a00456 custom._id: 49bb74fc678713bf6a00456 كيف يمكنني حل هذه المشكلة؟ 1 اقتباس
1 عبدالله عبدالرحمن11 نشر 24 يونيو 2021 أرسل تقرير نشر 24 يونيو 2021 السبب عند مقارنة الرقم الفريد 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) اقتباس
السؤال
Tamim Fahed
احاول مقارنة عدد من المستندات من خلال الرقم الفريد لها _id . ولكن النتيجة دوماً تظهر بشكل false أو لا يوجد تطابق، حتى ولو كان الحقل له نفس القيمة:
if (userId == custom._id) { // لا يتم الدخول أبداً إلى محتوى الشرط }
مع أن القيم هي نفسها عندما أقوم بطباعتها:
userId: 49bb74fc678713bf6a00456 custom._id: 49bb74fc678713bf6a00456
كيف يمكنني حل هذه المشكلة؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.