Я задаю этот вопрос после попытки решить эту проблему в течение всего дня. Я хочу получить адрес моих пользователей по userId
и addressId
. Поскольку я получаю данные из почтовых запросов, мне нужно убедиться, что запрос содержит и userId
, и addressId
, чтобы избежать проблем с безопасностью. В результате запроса ниже возвращаются все адреса моего пользователя, а не только адрес, содержащий правильный addressId
.
async getUserAddress(_id: string, addressId: string) {
const user = await this.userModel.findOne(
{
_id,
addresses: {
$elemMatch: {
addressId: Types.ObjectId(addressId)
}
}
}
)
if (!user) {
throw new NotFoundException();
}
return user.addresses[0];
}
, поскольку невозможно использовать $elemMatch
на разных уровнях документа или даже на На верхнем уровне запроса я не нашел лучшего способа сделать этот запрос без использования фильтров. Есть какие-нибудь идеи?
Tks заранее