0

This is the code from server side i have created but says :

[
  '60c65094d9e1242a18cf84da',
  '60c650d7d9e1242a18cf84db',
  '60c650fbd9e1242a18cf84dc'
]

Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters at new ObjectID (F:\Web Development\Assignments\fresh-mart-server\node_modules\bson\lib\bson\objectid.js:59:11) at ObjectID (F:\Web Development\Assignments\fresh-mart-server\node_modules\bson\lib\bson\objectid.js:40:43) at F:\Web Development\Assignments\fresh-mart-server\index.js:49:36 at Layer.handle [as handle_request] (F:\Web Development\Assignments\fresh-mart-server\node_modules\express\lib\router\layer.js:95:5) at next (F:\Web Development\Assignments\fresh-mart-server\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (F:\Web Development\Assignments\fresh-mart-server\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (F:\Web Development\Assignments\fresh-mart-server\node_modules\express\lib\router\layer.js:95:5) at F:\Web Development\Assignments\fresh-mart-server\node_modules\express\lib\router\index.js:281:22 at Function.process_params (F:\Web Development\Assignments\fresh-mart-server\node_modules\express\lib\router\index.js:335:12) at next (F:\Web Development\Assignments\fresh-mart-server\node_modules\express\lib\router\index.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 Answer 1

1

Instead of converting you array into ObjectId(), convert individual items inside the array into ObjectIds.

const productKeys = req.body;
let convertedKeys = productKeys.map((x) => ObjectID(x));

productCollection.find({_id: {$in :convertedKeys}})

Sign up to request clarification or add additional context in comments.

1 Comment

It works . Thanks for helping me Mr. "Tushar Shahi".

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.