Tamim Fahed نشر 30 يونيو 2021 أرسل تقرير نشر 30 يونيو 2021 لدي مجموعة من المستندات بالهيئة التالية: { 'users' : [ { 'username' : 'user1', 'value' : 5 }, { 'username' : 'user2', 'value' : 10 }, { 'username' : 'user3', 'value' : 2 } ] } وأرغب بإضافة عنصر جديد إلى المصفوفة users فقط في حال لم يكن الاسم username موجوداً، أي بغض النظر عن قيمة الحقل value. فهل من الممكن تحقيق ذلك باستخدام addToSet أم يجب علي إضافة أمر آخر إلى الاستعلام؟ اقتباس
1 Sam Ahw نشر 30 يونيو 2021 أرسل تقرير نشر 30 يونيو 2021 من أبسط الطرق التي يمكنك استخدامها هي منع الإضافة أو التحديث في حال وجود القيمة username ضمن المصفوفة: update( {_id: id, 'users.username': {$ne: 'some_value_here'}}, {$push: {users: {'name': 'some_value_here', 'value': 11}}}) بحيث يتم أولاً إجراء استعلام على المستندات التي لا تحوي هذه القيمة ضمن الحقل username وبعدها تتم الإضافة، أما في حال وجود أي مستند يحوي هذه القيمة فلن يتحقق الاستعلام وبالتالي لن تتم الإضافة على المجموعة. 1 اقتباس
السؤال
Tamim Fahed
لدي مجموعة من المستندات بالهيئة التالية:
{ 'users' : [ { 'username' : 'user1', 'value' : 5 }, { 'username' : 'user2', 'value' : 10 }, { 'username' : 'user3', 'value' : 2 } ] }
وأرغب بإضافة عنصر جديد إلى المصفوفة users فقط في حال لم يكن الاسم username موجوداً، أي بغض النظر عن قيمة الحقل value.
فهل من الممكن تحقيق ذلك باستخدام addToSet أم يجب علي إضافة أمر آخر إلى الاستعلام؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.