Почему Promise.All возвращает массив в массиве - PullRequest
0 голосов
/ 26 марта 2020

Я кодирую на бэкэнде (узел & express) сделать запрос к базе данных (mongodb, используя mon goose)

Когда я запускаю этот код:

let RefundRequests = req.body.refundRequests.map(e => {return (

    Ticket.findById(e)

    )}  )

Promise.all(RefundRequests).then(data => {console.log('data', data) })

консоль записывает в массив массив с объектом:

    data [
     {
      //relevant data
     }
    ]

, но когда я изменяю обещание на:

let RefundRequests = req.body.refundRequests.map(e => {return (

        Ticket.find({
                _id: e,
                refunded: false
            })
        )})

то же обещание. Все регистрирует массив, содержащий массив, содержащий объект:

data [
  [
    {
     //relevant data
    }
  ]
]

Почему есть разница? Я бы предпочел, чтобы он возвращал один массив с объектом для простоты кодирования

1 Ответ

0 голосов
/ 26 марта 2020

find возвращает массив документов, findById возвращает один документ. поиск документов

...