#javascript #reactjs #mongodb
Вопрос:
Это код со стороны сервера, который я создал, но говорит :
[
'60c65094d9e1242a18cf84da',
'60c650d7d9e1242a18cf84db',
'60c650fbd9e1242a18cf84dc'
]
Ошибка: Переданный аргумент должен быть одной строкой из 12 байт или строкой из 24 шестнадцатеричных символов
в новом идентификаторе объекта (F:Web РазработкаНазначениясервер fresh-martnode_modulesbsonlibbsonobjectid.js:59:11)
на объекте (F:Web РазработкаНазначениясервер fresh-martnode_modulesbsonlibbsonobjectid.js:40:43)
в F:Web РазработкаЗаданиясервер fresh-martиндекс.js:49:36
на уровне.ручка [как handle_request] (F:Web РазработкаНазначениясервер fresh-martnode_modulesexpresslibмаршрутизаторуровень.js:95:5)
на следующем (F:Web РазработкаНазначениясервер fresh-martnode_modulesexpresslibмаршрутизатормаршрут.js:137:13)
на маршруте.отправка (F:Web РазработкаНазначениясервер fresh-martnode_modulesexpresslibмаршрутизатормаршрут.js:112:3)
на уровне.ручка [как handle_request] (F:Web РазработкаНазначениясервер fresh-martnode_modulesexpresslibмаршрутизаторуровень.js:95:5)
в F:Web РазработкаНазначениясервер fresh-martnode_modulesexpresslibмаршрутизаториндекс.js:281:22
на работе.параметры процесса (F:Web РазработкаНазначениясервер fresh-martnode_modulesexpresslibмаршрутизаториндекс.js:335:12)
на следующем (F:Web РазработкаНазначениясервер fresh-martnode_modulesexpresslibмаршрутизаториндекс.js:275:10)
app.post('/productsByKeys',(req,res)=> {
console.log("found:ids",req.body)
const productKeys = req.body;
productCollection.find({_id: {$in :ObjectID(productKeys)}})
.toArray((err,items)=> {
res.send(items);
console.log(" found by ids: ",documents)
console.log("RESPONSE :",err)
})
})
Ответ №1:
Вместо преобразования массива в ObjectId () преобразуйте отдельные элементы внутри массива в ObjectIds.
const productKeys = req.body;
let convertedKeys = productKeys.map((x) => ObjectID(x));
productCollection.find({_id: {$in :convertedKeys}})
Комментарии:
1. Это работает . Спасибо, что помогли мне, мистер «Тушар Шахи».