#javascript #node.js #reactjs #mongodb #axios
Вопрос:
Есть ли способ запросить api или базу данных с помощью axios, если значение элемента объекта не совпадает со значением другого элемента объекта
Пример: я пытаюсь получить все заголовки («название»), где «_ref» не совпадает
{
"__v": 0,
"_ref": "6149290b197615d32c515dab",
"title": "First Title",
"details": "first"
},
{
"__v": 0,
"_ref": "6149290b197615d32c515dab",
"title": "First Title",
"details": "second"
},
{
"__v": 0,
"_ref": "2805jkdfg763",
"title": "Third Title",
"details": "third"
}
return await axios
.get('http://localhost/api', {
params: {
_ref: != _ref
},
})
.then(response => {
EventRegister.emit('MongoDb_Data', response.data);
return response.data;
})
.catch(err => {
console.log(err);
});
желаемыми результатами были бы:
First Title
Third Title
Комментарии:
1. Это полностью зависит от конкретного API, а не от axios (который просто выполняет HTTP-запрос).
2. Я думаю, что вопрос не связан с axios, а связан с тем, как обрабатывать данные, когда один атрибут является общим в разных списках объектов. У меня есть на это ответ. Пожалуйста, проверьте, ищете ли вы это.
Ответ №1:
const data = [
{
"__v": 0,
"_ref": "6149290b197615d32c515dab",
"title": "First Title",
"details": "first"
},
{
"__v": 0,
"_ref": "6149290b197615d32c515dab",
"title": "First Title",
"details": "second"
},
{
"__v": 0,
"_ref": "2805jkdfg763",
"title": "Third Title",
"details": "third"
}
]
const refmap = data.reduce((acc, { _ref, title }) => {
acc[_ref] = {
title,
};
return acc;
}, {});
console.log('c', Object.values(refmap));
вы получите массив желаемых выходных данных.
console.log('c', Object.values(refmap).map( a => a.title)); // final output
Комментарии:
1. Итак, вы предполагаете, что мне придется удалить все данные, а затем отфильтровать и настроить данные на стороне клиента
2. о , я думал, что вы получаете все данные при вызове из БД, если это не так, то вышеизложенное не является хорошей практикой . Приведенное выше решение для случая, если у вас есть все данные на руках. не уверен , как он справится со стороной БД.