У меня возникли некоторые логические проблемы с двумя запросами, которые я делаю в mongoose. У меня два запроса, и я хочу «объединить их».
Первый запрос принимает неанонимные опросы , второй - анонимные опросы . Разница в том, что в первом я выбираю поле "author" , а во втором я не выбираю поле "author" .
Теперь мне нужно выполнить разбиение на страницы для частичной загрузки опросов, и я думаю, что лучше сделать только один запрос.
Итак, это запросы:
let notAnonymousPolls = await Poll.find({toUser: user.id, anonymous: false, status: ["closed", "opened", "hidden", "waitingResponse"]})
.populate([
{path: "replies", select: "text"}, {path: "author", select: "username"}, {path: "replySelected", select: "_id"}
])
.select({"__v": 0});
второй
let anonymousPolls = await Poll.find({toUser: user.id, anonymous: true, status: ["closed", "opened", "hidden", "waitingResponse"]})
.populate([
{path: "replies", select: "text"}, {path: "replySelected", select: "_id"}
])
.select({"author": 0, "__v": 0});
Моя проблема заключается в следующем: как я могу сказать Mongoose , чтобы выбрать автора, если анонимное поле имеет значение false , иначе не выбирать автора, если анонимное поле имеет значение true ?
Я не знаю, как выполнить это условие, и какой оператор я могу использовать для этого. Я искал в документации по Mongoose и не нашел ничего полезного.
О нумерации страниц: если у меня один запрос, все просто. Если у меня есть два запроса, как я могу сделать нумерацию страниц? С оператором $ slice?