Я пытаюсь построить агрегатный запрос mongoose динамически на основе содержимого переменной массива, переданной в вызове API POST, как показано ниже, но я всегда получаю сообщения об ошибках "$ or / $ и / $ nor. Мне нужны полные объекты " поэтому было бы интересно, если кто-нибудь может просмотреть мой код ниже, пожалуйста, дайте мне знать, что я могу упустить / делать неправильно?
static search (searchData) {
let { searchTerm, filterBy } = searchData;
searchTerm = Utils.escapeRegexSpecialCharacters(searchTerm);
let filterByElementsLength = filterBy.length;
if(filterByElementsLength === 0) {
query.push({
$match: { 'bookTitle': new RegExp(searchTerm, 'i') },
});
}else if (filterByElementsLength > 0) {
query.push({
$match: { $and: [
{ 'bookTitle': new RegExp(searchTerm, 'i') },
filterBy
] }
});
}
}
Учитывая, что содержимое filterBy публикуется какJSON (приложение / json) с использованием Postman со следующим примером содержимого:
"filterBy": [{"author": "Michael White" }, { "Price_Less_Than": "100" }],
Спасибо за вашу поддержку