Я пытаюсь сделать find()
, но с оператором if.
У меня следующий запрос:
Promise.all([
User.find({ $and: [
{ 'type': 'user' },
{ $or: [
{ username: { $regex: String(value), $options: "i" } },
{ firstName: { $regex: String(value), $options: "i" } },
]}
]})
.then(user => user),
User.countDocuments({ 'type': 'user' })
.then(count => count)
])
.then(promiseData => {
return response.status(200).json({ count: promiseData[1] });
}
Так что в обещании первый запрос находит всех пользователей с типом user
.
Что я хочу сделать, так это, если у пользователя, выполняющего поиск, есть конкретное разрешение, измените этот поиск.
Например, допустим, что пользователь 'admin' выполняет поиск. Я хочу добавить другой запрос в поиск, например:
User.find({ $and: [
{ 'type': 'user' },
// If the user is an admin => _if(true){ run this }_
{ 'stuff': true },
// end if
{ $or: [
{ username: { $regex: String(value), $options: "i" } },
{ firstName: { $regex: String(value), $options: "i" } },
]}
]})
.then(user => user),
Можно ли добавить еще одно поле в мой запрос с помощью оператора if?
Я не хочу запускать 2 запроса, которые по сути одинаковы.