как выполнить поиск по нескольким документам, указав несколько идентификаторов одновременно в базе данных express и mongo с помощью mongoose

#node.js #mongodb

Вопрос:

это мой обработчик маршрута

 router.get("/get-bookmarks", async (req, res) => {
  const bookmarks = await Post.find({ _id: { $all: req.body.idList } });
  if (!bookmarks) return res.status(404).send("No bookmarks yet");
  return res.send(bookmarks);
});
 

это данные для поиска с помощью почтальона

 {
"idList": ["60c07302f033f51f6c87c986","60c07399f033f51f6c87c989","60c0736ff033f51f6c87c988"]
}
 

Комментарии:

1. попробуйте заменить $all на $in

Ответ №1:

Вы можете сделать это с $in помощью оператора, вот так:

 Post.find({ _id: { $in: req.body.idList } });
 

Вот рабочий пример: https://mongoplayground.net/p/gs-nuaB-_Ux