как запросить api или базу данных с помощью axios, если значение объекта не совпадает

#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. о , я думал, что вы получаете все данные при вызове из БД, если это не так, то вышеизложенное не является хорошей практикой . Приведенное выше решение для случая, если у вас есть все данные на руках. не уверен , как он справится со стороной БД.