Запрос Mongoose для вложенного документа с использованием коллекции идентификаторов, как это делает SQL-запрос Wher IN ('ID1', 'ID2') - PullRequest
0 голосов
/ 01 декабря 2019

Как я могу исправить свой код ниже. Мне нужно динамически генерировать параметры в $ при поступлении от клиента через HTTP POST-вызов. Даже если я жестко закодировал параметры, я все еще не получил ожидаемых результатов. Rooms - это поддокумент массива в соответствии с моделью отеля, и я просто хочу вернуть название отеля и номер, который соответствует данному идентификатору. Заранее спасибо за помощь.

async function fetchHotelCollectionByRoomIds(roomIds) {
  if (!Array.isArray(roomIds)) {
    throw "Invalid array of Room IDs.";
  }

  const hotelByRoomIds = await HotelDataApi.find(
    {
      "rooms._id": {
        $in: [
          new ObjectId("5da42da876c3c52d08d6a1fe"),
          new ObjectId("5dded7958c55911bc834cb06")
        ]
      }
    },
    { name: 1, rooms: 1 }
  ).exec();

  return hotelByRoomIds;
}
...