У меня проблемы в моем запросе, параметр, который я передаю: voucherId и userId, мне нужно проверить, превысил ли этот пользователь ограничениеQuantityPerUser.Если да, исключите этот ваучер.Но у меня возникают проблемы при сравнении соответствующих полей, например, если voucherId равен 'aaa' , проверьте, если amountBrought> limitedQuantityPerUser.
Я пробовал это
vouchers.find({
'status': {
$in: ['OP', 'WG', 'LO', 'SO']
},
'details.userReachedLimitedQuantity': {
$ne: userId
},
}, fields, {
sort: {
'order': 1
}
}
Но это даст мне весь результат, когда userId не равен в списке.не совсем то, что мне нужно.Лучше решить с помощью агрегата?
Пример ресурса JSON-файла
[{
"_id": "111",
"details": {
"limitedQuantityPerUser": "3",
"userReachedLimitedQuantity": [{
"userId": "aaa",
"quantityBrought": "2"
},
{
"userId": "bbb",
"quantityBrought": "1"
},
{
"userId": "ccc",
"quantityBrought": "3"
}
],
"status": "OP"
}
},
{
"_id": "222",
"details": {
"limitedQuantityPerUser": "2",
"userReachedLimitedQuantity": [{
"userId": "eee",
"quantityBrought": "2"
},
{
"userId": "bbb",
"quantityBrought": "1"
},
{
"userId": "vvv",
"quantityBrought": "2"
}
],
"status": "OP"
}
}
]