Я хочу получить все пользовательские документы массива подписчиков, который состоит из uid (string).
{
"followers": [
"GHfd4UbusVUV5Ofo3xU4gH3XDFv2", "W380Qbxq2vUTKuzQdOvdsrFyrjb2"
],
"followings": [
"GHfd4UbusVUV5Ofo3xU4gH3XDFv2"
]
Я отправляю массив последователей напрямую как idArray Я использую следующий код:
router.get('/a/:idArray', (req, res) => {
User.find({ uid: { $in : req.params.idArray}})
.then(users => {
res.json(users);
console.info('array',users);
})
.catch(err => {
console.info(err);
});
});
Но я получаю нулевой массив. Где я делаю не так?
пожалуйста, проверьте вопрос еще раз. Я его обновил. @JimB.





Вы не можете передать массив, подобный этому ["W380Qbxq2vUTKuzQdOvdsrFyrjb2", "GHfd4UbusVUV5Ofo3xU4gH3XDFv2"], в запрос GET.
Преобразуйте ваш массив на стороне клиента в значения, разделенные запятыми, и передайте как строку запроса
/a?idArray=W380Qbxq2vUTKuzQdOvdsrFyrjb2&idArray=GHfd4UbusVUV5Ofo3xU4gH3XDFv2
Для передачи сложных объектов необходимость URL-кодирования всего может стать проблемой, поэтому, хотя ответ @front_end_dev правильный, если ваш API становится более сложным, вы можете перейти к передаче данных в теле запроса POST:
router.post('/a', (req, res) => {
User.find({ uid: { $in : req.body.uids }})
.then(users => {
res.json(users);
console.info('array',users);
})
.catch(err => {
console.info(err);
});
});
тело будет выглядеть так:
{
uids: [
"GHfd4UbusVUV5Ofo3xU4gH3XDFv2",
"W380Qbxq2vUTKuzQdOvdsrFyrjb2"
]
}
Как вы передаете массив в get со стороны клиента?