Мне нужно выполнить запрос mongoose, который ищет в БД записи, основанные на доступе пользователя.Поля доступа будут либо ['all']
, либо массивом допустимых строк для поиска.
Основная структура запроса приведена ниже:
let { userid, access } = user;
let allRecords = await db.Record.find({
'organisation': {$in: access.organisations},
'country': {$in: access.countries}
})
Однако, если пользователь имеет, например, доступдля всех организаций, тогда я не хочу фильтровать в этой области.Доступ ко всем организациям будет представлен access.organisations === ['all']
.То же самое относится и к полю страны.
Это может быть достигнуто некоторыми операторами if для выполнения правильного запроса.И это, вероятно, было бы хорошо, поскольку у меня не так много полей доступа, но это может расшириться в будущем, поэтому, если операторы могут стать грязными.
Есть ли лучший способ?