Tamim Fahed نشر 20 يونيو 2021 أرسل تقرير نشر 20 يونيو 2021 لقد قمت بكتابة الاستعلام التالي للحصول على مستندات فيها مستندات أخرى كقيمة لحقل معيّن nested object: chat.find( { message : { from: "test1" } } ) وقمت بكتابة نفس الاستعلام ولكن باستخدام المسارات ( علامة النقطة . ) كالتالي: chat.find( { 'message.from': "test1" } ) ولكن كل استعلام أعطى نتيجة مختلفة عن الآخر، فالاستعلام الأول لم يقم بإعادة أي نتيجة أما الاستعلام الثاني أعاد 10 نتائج. أليس من المفترض أن أحصل على نفس النتيجة في كلتا الحالتين؟ فباستخدام dot notation تم الوصول إلى نفس الحقل from اقتباس
0 Sam Ahw نشر 20 يونيو 2021 أرسل تقرير نشر 20 يونيو 2021 بتاريخ 30 دقائق مضت قال Tamim Fahed: chat.find( { message : { from: "test1" } } ) المشكلة هي أن الاستعلام الأول يقوم بإلبحث عن المستندات التي لها الحقل message يحوي الخاصية from مع قيمة الشرط فقط، أي يجب ألا يحوي هذا المستند أي خصائص أخرى داخل message سوى from. أما في الاستعلام الثاني: بتاريخ 31 دقائق مضت قال Tamim Fahed: chat.find( { 'message.from': "test1" } ) يتم النظر فقط إلى قيمة 'message.from' ولا تتأثر النتيجة بأي حقول أخرى موجودة ضمن الغرض message أو أي حقول أخرى موجودة في المستند الرئيسي لذلك سيتم إعادة نتائج مختلفة عند تطبيق كل منهما وفي حال عدم وجود أي مستند يحوي فقط خاصية واحدة from ضمن الغرض message ستكون النتيجة فارغة في الاستعلام الأول 2 اقتباس
السؤال
Tamim Fahed
لقد قمت بكتابة الاستعلام التالي للحصول على مستندات فيها مستندات أخرى كقيمة لحقل معيّن nested object:
chat.find( { message : { from: "test1" } } )
وقمت بكتابة نفس الاستعلام ولكن باستخدام المسارات ( علامة النقطة . ) كالتالي:
chat.find( { 'message.from': "test1" } )
ولكن كل استعلام أعطى نتيجة مختلفة عن الآخر، فالاستعلام الأول لم يقم بإعادة أي نتيجة أما الاستعلام الثاني أعاد 10 نتائج.
أليس من المفترض أن أحصل على نفس النتيجة في كلتا الحالتين؟ فباستخدام dot notation تم الوصول إلى نفس الحقل from
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.