Я пытаюсь отфильтровать отчет, используя два параметра (имя и идентификатор) в Mongo DB. Образом она у меня настроить сейчас это:Как оптимизировать фильтрацию в базе данных Mongo
// if both params are empty
if ((empty($filterParams['name'])) && (empty($filterParams['id']))) {
$views = $mongoDb->selectCollection('views')->find([], []);
}
// if one of the two params are empty
if ((!empty($filterParams['name'])) || (!empty($filterParams['id']))) {
// name is empty
if ((empty($filterParams['name']))) {
$idQuery = array('id' => (int)$filterParams['id']);
$views = $mongoDb->selectCollection('views')->find($idQuery, []);
}
// id is empty
if ((empty($filteredParams['id']))) {
$nameQuery = array('name' => $filterParams['name']);
$views = $mongoDb->selectCollection('views')->find($nameQuery, []);
}
// neither are empty
if ((!empty($filterParams['name'])) && (!empty($filterParams['id']))) {
$fullQuery = array('id' => (int)$filterParams['id'], 'name' => $filteredParams['name']);
$views = $mongoDb->selectCollection('views')->find($fullQuery, []);
}
}
мне было интересно, если есть способ, чтобы упорядочить это так, что вставка может быть сделано один раз без мультипликатора, если заявления.
Спасибо за ваш ответ. Это то, что я искал. –