мы можем использовать .project на mongodb при использовании ax ios? (цель состоит в том, чтобы отфильтровать некоторые специальные поля из экспорта) - PullRequest
2 голосов
/ 29 марта 2020

это мой первый вопрос на этом замечательном сайте, так как обычно я всегда находил кого-то, кто спрашивал меня до этого:)

Я унаследовал код и попытался сделать его развивающимся, и вы увидите, как я спросите, что я совсем не знаком с этим кодом ... Это для моего сайта, разработанного в РЕАКТ, и база данных MongoDB. Вот функция get, получающая все данные из MongoDB, отфильтрованные по соответствующим объявлениям (это не совсем так. Затем я упростила это, чтобы сократить сообщение):

import axios from "axios";

const axiosInstance = axios.create({
  baseURL: config.api_url, headers: {"Content-Type": "application/json"}
});

export const getAnnounces = () => {
  return new Promise((resolve, reject) => {
    axiosInstance
      .get("/announces?archived=false&status=publique")
      .then(response => resolve({type: ADVERT_FOUND, announces: response.data})

Моя проблема в том, что Я хотел бы определить функцию получения всей информации, кроме изображений (которые находятся в коллекции и в некоторых случаях увеличивают размер экспорта без добавленной стоимости). Я пробовал это, но безуспешно

export const getAnnounces = () => {
  return new Promise((resolve, reject) => {
    axiosInstance
      .get("/announces?archived=false&status=publique", { project: {images:0} })
      .then(response => resolve({type: ADVERT_FOUND, announces: response.data})

Кто-нибудь знает, можно ли использовать .project или .projection с axios ... если нет, то любой idea/suggestion, как управлять этим?

Редактировать: благодаря комментариям ниже, я пошел в API, нашел определение getAnnounces таким образом, чтобы я лучше понимал:

const getAnnounces = (req, res, next) => {const { filter, skip, limit, sort, projection } = aqp(req.query);
Announces.find(filter)

Я просто изменил это, и он работает отлично!

Announces.find(filter,{images:0})

Спасибо, Антуан

...