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

تحديد اسماء الحقول في $addToSet ضمن mongodb

Tamim Fahed

السؤال

لدي مجموعة من المستندات بالهيئة التالية:

{ 'users' :
  [
    { 'username' : 'user1', 'value' : 5 },
    { 'username' : 'user2',  'value' : 10 },
    { 'username' : 'user3', 'value' : 2 }
  ] 
}

وأرغب بإضافة عنصر جديد إلى المصفوفة users فقط في حال لم يكن الاسم username موجوداً، أي بغض النظر عن قيمة الحقل value.

فهل من الممكن تحقيق ذلك باستخدام addToSet أم يجب علي إضافة أمر آخر إلى الاستعلام؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

من أبسط الطرق التي يمكنك استخدامها هي منع الإضافة أو التحديث في حال وجود القيمة username ضمن المصفوفة:

update(
    {_id: id, 'users.username': {$ne: 'some_value_here'}}, 
    {$push: {users: {'name': 'some_value_here', 'value': 11}}})

بحيث يتم أولاً إجراء استعلام على المستندات التي لا تحوي هذه القيمة ضمن الحقل username وبعدها تتم الإضافة، أما في حال وجود أي مستند يحوي هذه القيمة فلن يتحقق الاستعلام وبالتالي لن تتم الإضافة على المجموعة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...