• التصفية المعقدة

التصفية المعقدة

تتمتع الكائنات (أي كيان يمكنك إنشاء خاصية مخصصة له) بميزة التصفية المعقدة، التي تتيح لك التصفية حسب الخاصية.

يكون بنية التصفية المعقدة كالتالي:

complex_filters<OrGroup<AndGroup<AndObject>[]>[]>

أو، في نصوص الإستعلام:

complex_filters[OrGroupIndex][AndGroupIndex][AndObjectKey]

وفي JS يكون كالتالي:

{
    complex_filters: [
        // this is OrGroup
        [
            // this is AndGroup
            [
                // this is AndObject
                {
                    field: string,
                    operation: string,
                    value: string|number|undefined,
                },
                // another AndObject
                {
                    field: string,
                    operation: string,
                    value: string|number|undefined,
                },
            ]
        ]
    ]
}

حيث:

  1. field: هو الاسم الداخلي للخاصية.
  2. operation: exists | doesntExist | equal | notEqual | in | notIn | greater | less | lessOrEqual.
  3. value: القيمة المُقارنة بها، مطلوبة فقط عند استخدام عملية مُقارنة.

مثال

هذا استعلام للحصول على جميع جهات الاتصال التي لديها 1. الإسم = محمد والعمر < 30، أو أي جهة اتصال لديها حالة زواج معروفة.

https://app.alaaqat.com/api/contacts?page=1&complex_filters[0][0][field]=firstname&complex_filters[0][0][operation]=equal&complex_filters[0][0][value]=Mohammad&complex_filters[0][1][field]=age&complex_filters[0][1][operation]=greater&complex_filters[0][1][value]=30&complex_filters[1][0][field]=marital_status&complex_filters[1][0][operation]=exists