Установить приоритет для красноречивого запроса laravel (с mongodb) - PullRequest
1 голос
/ 17 октября 2019

Я использую пакет jenssegers / laravel-mongodb в своем проекте.

Я пытаюсь выполнить запрос whereIn, который сначала получит все результаты из массива идентификаторов, а затем завершит остальные результаты. из другого условия.

Примерно так:

$ids = [88,206,333,4786,5001];

$query = List::where(function($q){
   $q->whereIn('id',$ids')->orWhere('shouldDisplay',true);
})
->where('new',true)
->take(10)
->get();

Этот запрос должен сначала искать значения в массиве ids, а затем искать другую запись, соответствующую второму запросу orWhere.

Желаемые результаты:

Collection {
   0 => id number 88 results set ,
   1 => id number 206 results set ,
   2 => id number 333 results set ,
   3 => id number 4786 results set ,
   4 => id number 5001 results set ,
   5 => id number "something from database" results set ,
   6 => id number "something from database" results set ,
   7 => id number "something from database" results set ,
   8 => id number "something from database" results set ,
   9 => id number "something from database" results set
}

Я знаю, что это может быть сделано двумя запросами ... но я хочу получить эти данные только одним запросом.

это вообще возможно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...