фильтр на основе значения в массиве, где - PullRequest
0 голосов
/ 01 октября 2018

Я запрашиваю данные, где структура примерно такая.

У меня есть две модели, FoodDrinks и Кухни .Они имеют отношение ко многим.

Теперь по следующему запросу

{
   "filter": {
        "include": "cuisines"
   }
}

Я получаю следующие результаты.

[
    {
        "id": 1,
        "name": "Biryani",
        "cuisines": [
             {
                 "id": 1,
                 "name": "Mughlai"
             },
             {
                 "id": 2,
                 "name": "North Indian"
             },
             {
                 "id": 3,
                 "name": "Afghani"
             }
        ]
    },
    {
        "id": 2,
        "name": "Chhole Bhature",
        "cuisines": [
             {
                 "id": 2,
                 "name": "North Indian"
             }
        ]
    },
    {
        "id": 3,
        "name": "Amritsari Naan",
        "cuisines": [
             {
                 "id": 2,
                 "name": "North Indian"
             },
             {
                 "id": 6,
                 "name": "Punjabi"
             },

        ]
    }
]

Теперь я хочу только те напиткикоторые имеют кухни из следующего массива.

let cuisinesIDs = ["1", "2"]

Что будет следующий запрос для этого?

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Это может быть тот же ответ, что и @Behrooz, но я бы попробовал:

{
   "filter": {
        "include": {
                relation: 'cuisines',
                scope: {
                    where: {
                       id: {inq: cuisinesIDs}
                    }
                }
            }
   }
}
0 голосов
/ 02 октября 2018

Я думаю, что-то вроде ниже должно работать:

{
   "filter": {
        "include": "cuisines"
   },
   "where": {
         "cuisines.id": {
             "inq": cuisinesIDs
         }
   }
}
...