مشغلات المصفوفات
يوفر ميلفوس مشغلات قوية للاستعلام عن حقول المصفوفات، مما يسمح لك بتصفية واسترجاع الكيانات بناءً على محتويات المصفوفات.
يجب أن تكون جميع العناصر داخل المصفوفة من نفس النوع، ويتم التعامل مع البنى المتداخلة داخل المصفوفات كسلاسل عادية. ولذلك، عند العمل مع حقول ARRAY، يُنصح بتجنب التداخل العميق بشكل مفرط والتأكد من أن بنيات البيانات الخاصة بك مسطحة قدر الإمكان لتحقيق الأداء الأمثل.
معاملات ARRAY المتاحة
تسمح مشغلات ARRAY بالاستعلام الدقيق لحقول المصفوفات في ميلفوس. هذه المعاملات هي:
ARRAY_CONTAINS(identifier, expr): التحقق من وجود عنصر معين في حقل مصفوفة.ARRAY_CONTAINS_ALL(identifier, expr): يضمن وجود جميع عناصر القائمة المحددة في حقل المصفوفة.ARRAY_CONTAINS_ANY(identifier, expr): يتحقق من وجود أي عنصر من القائمة المحددة في حقل المصفوفة.ARRAY_LENGTH(identifier): تُرجع عدد العناصر في حقل مصفوفة ويمكن دمجها مع عوامل المقارنة للتصفية.
ARRAY_CONTAINS
يتحقق عامل ARRAY_CONTAINS من وجود عنصر محدد في حقل مصفوفة. وهو مفيد عندما تريد العثور على الكيانات التي يوجد فيها عنصر معين في المصفوفة.
مثال
لنفترض أن لديك حقل مصفوفة history_temperatures ، والذي يحتوي على أدنى درجات الحرارة المسجلة لسنوات مختلفة. للعثور على جميع الكيانات التي تحتوي فيها المصفوفة على القيمة 23 ، يمكنك استخدام تعبير التصفية التالي:
filter = 'ARRAY_CONTAINS(history_temperatures, 23)'
سيعيد هذا جميع الكيانات حيث تحتوي المصفوفة history_temperatures على القيمة 23.
array_contains_all
يضمن المشغل ARRAY_CONTAINS_ALL وجود جميع عناصر القائمة المحددة في حقل المصفوفة. يكون هذا العامل مفيدًا عندما تريد مطابقة الكيانات التي تحتوي على قيم متعددة في المصفوفة.
مثال
إذا كنت تريد العثور على جميع الكيانات التي تحتوي فيها المصفوفة history_temperatures على كل من 23 و 24 ، يمكنك استخدام:
filter = 'ARRAY_CONTAINS_ALL(history_temperatures, [23, 24])'
سيؤدي هذا إلى إرجاع جميع الكيانات حيث تحتوي المصفوفة history_temperatures على كل من القيم المحددة.
مصفوفة_تحتوي_على_أي
يتحقق المشغل ARRAY_CONTAINS_ANY مما إذا كان أي من عناصر القائمة المحددة موجودًا في حقل المصفوفة. هذا مفيد عندما تريد مطابقة الكيانات التي تحتوي على قيمة واحدة على الأقل من القيم المحددة في المصفوفة.
مثال
للعثور على جميع الكيانات حيث تحتوي المصفوفة history_temperatures على 23 أو 24 ، يمكنك استخدام:
filter = 'ARRAY_CONTAINS_ANY(history_temperatures, [23, 24])'
سيؤدي هذا إلى إرجاع جميع الكيانات حيث تحتوي المصفوفة history_temperatures على واحدة على الأقل من القيمتين 23 أو 24.
ARRAY_LENGTH
يُرجع ARRAY_LENGTH طول (عدد العناصر) لحقل مصفوفة. يقبل معلمة واحدة فقط: معرف حقل المصفوفة.
مثال
للعثور على جميع الكيانات حيث تحتوي المصفوفة history_temperatures على أقل من 10 عناصر:
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
سيؤدي ذلك إلى إرجاع جميع الكيانات التي تحتوي المصفوفة history_temperatures على أقل من 10 عناصر.