У меня есть одна коллекция - "items"
У меня также есть две другие коллекции - "books_details" и "fruits_details".Они имеют разные структуры.
Некоторые элементы имеют тип item_type: book, а некоторые - item_type: fruit.
Каждый элемент имеет идентификатор item_type_id, соответствующий документу в соответствующей коллекции.
Я хочу отобразить комбинированный список предметов с деталями из соответствующей коллекции, в зависимости от item_type.
Похоже:
- Мне нужно сделать два разных этапа поиска $и объединить их.Не удалось сделать это.
или
- Сделайте один $ lookup и сделайте результаты основой второго этапа $ lookup и объедините их.Не удалось сделать это.
или
- Мне нужно сделать поиск в зависимости от item_type.Не нашел способ сделать это.
Возможно ли это?Если да, то как?
Спасибо.
предметов
{
"item_id": 1234,
"item_type": "book",
"item_type_id": 1
},
{
"item_id": 5678,
"item_type": "fruit",
"item_type_id": 1
}
books_details
{
"item_id": 1,
"title": "Gone with the wind",
"author": "Margaret Mitchell"
}
fruits_details
{
"item_id": 1,
"name": "Banana",
"color": "yellow"
}
ожидаемый список
{
"item_id": 1234,
"item_type": "book",
"item_type_id": 1,
"fruits_details": {},
"books_details": {"title": "Gone with the wind", "author": "Margaret Mitchell"}
},
{
"item_id": 5678,
"item_type": "fruit",
"item_type_id": 1,
"fruits_details": {"name":"Banana","color":"yellow"},
"books_details": {}
}