Как исключить поле из запроса
Для запроса использую aggregate, куда передаю:
[{
$match: {
id
}
},
{
$lookup: {
from: 'blogs',
as: 'blog',
pipeline: [{
$project: {
id: 1,
name: 1,
articles: 1
},
}, {
$match: {
articles: {
$in: [id]
}
}
}]
}
}
]
Где articles - массив, длина которого неопределенная. Я указываю articles в $project, чтобы потом воспользоваться им в $match. Проблема в том, что в итоге вместе с документом мне возвращается articles, а это лишняя нагрузка на сервер. Как можно не возвращать поле, полученное в $project?
Ответы (1 шт):
Автор решения: Voprositel
→ Ссылка
В итоге мне помог банальный $unset:
[{
$match: {
id
}
},
{
$lookup: {
from: 'blogs',
as: 'blog',
pipeline: [{
$project: {
id: 1,
name: 1,
articles: 1
},
}, {
$match: {
articles: {
$in: [id]
}
}
}, {
$unset: 'articles'
}]
}
}
]
Возможно, есть более правильное решение.