Tamim Fahed نشر 24 يونيو 2021 أرسل تقرير نشر 24 يونيو 2021 لدي مستندات فيها تاريخ معيّن بالشكل التالي: { "username" : "test123", "subDate" : ISODate("2020-10-01T00:00:00.000Z"), "phone" : 112334556 } وأقوم بإجراء الاستعلام التالي: find({ "subDate" : { "$gte" : { "$date" : "2020-10-01T00:00:00.000Z"}} }) ولكن لا يتم إعادة أي مستند، ما الخطأ هنا وكيف يمكنني إجراء هذا الاستعلام حسب التاريخ؟ 1 اقتباس
1 عبدالله عبدالرحمن11 نشر 24 يونيو 2021 أرسل تقرير نشر 24 يونيو 2021 على الرغم من $date جزء من MongoDB Extended JSON وهذا ما تحصل عليه بشكل افتراضي مع mongoexport لا أعتقد أنه يمكنك حقًا استخدامه كجزء من الاستعلام. مثال على ذلك db.foo.find({dt: {"$date": "2012-01-01T15:00:00.000Z"}}) ستحصل على هذا الخطأ error: { "$err" : "invalid operator: $date", "code" : 10068 } ولكن يمكنك الإستعلام بهذه الطريقة db.mycollection.find({ "dt" : {"$gte": new Date("2013-10-01T00:00:00.000Z")} }) أو بهذه db.mycollection.find({ "dt" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")} }) اقتباس
1 محمد أيت لعرايك نشر 24 يونيو 2021 أرسل تقرير نشر 24 يونيو 2021 قبل التعامل مع التواريخ في mongodb يجب عليك معرفة مايلي: يجب عليك تمرير كائن Javascript Date. يجب أن يكون صديقًا لـ ISODate تحتاج إلى معالجة التاريخ حتى ISO عادة ما يكون العمل مع التواريخ عملية شاقة دائمًا ، mongodb ليس استثناءً فيما يلي مقتطف عمل من التعليمات البرمجية ، حيث نقوم بتمرير تاريخ للإستعلام و هنا أستخدم وحدة mongoose وأريد نتائج للصفوف التي تكون سمة التاريخ فيها أكبر من أي (بعد) التاريخ المحدد var inputDate = new Date(myDate.toISOString()); MyModel.find({ 'date': { $gte: inputDate } }) اقتباس
السؤال
Tamim Fahed
لدي مستندات فيها تاريخ معيّن بالشكل التالي:
{ "username" : "test123", "subDate" : ISODate("2020-10-01T00:00:00.000Z"), "phone" : 112334556 }
وأقوم بإجراء الاستعلام التالي:
find({ "subDate" : { "$gte" : { "$date" : "2020-10-01T00:00:00.000Z"}} })
ولكن لا يتم إعادة أي مستند، ما الخطأ هنا وكيف يمكنني إجراء هذا الاستعلام حسب التاريخ؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.