مشغلات المصفوفات
يوفر ميلفوس مشغلات قوية للاستعلام عن حقول المصفوفات، مما يسمح لك بتصفية واسترجاع الكيانات بناءً على محتويات المصفوفات.
يجب أن تكون جميع العناصر داخل المصفوفة من نفس النوع، ويتم التعامل مع البنى المتداخلة داخل المصفوفات كسلاسل عادية. ولذلك، عند العمل مع حقول ARRAY، يُنصح بتجنب التداخل العميق بشكل مفرط والتأكد من أن بنيات البيانات الخاصة بك مسطحة قدر الإمكان لتحقيق الأداء الأمثل.
معاملات ARRAY المتاحة
تسمح مشغلات ARRAY بالاستعلام الدقيق لحقول المصفوفات في ميلفوس. هذه المعاملات هي:
ARRAY_CONTAINS(identifier, expr): التحقق من وجود عنصر معين في حقل مصفوفة.ARRAY_CONTAINS_ALL(identifier, expr): يضمن وجود جميع عناصر القائمة المحددة في حقل المصفوفة.ARRAY_CONTAINS_ANY(identifier, expr): يتحقق من وجود أي عنصر من القائمة المحددة في حقل المصفوفة.ARRAY_LENGTH(identifier, expr): يسمح لك بتصفية الكيانات بناءً على عدد العناصر في حقل مصفوفة.
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 عناصر.