Давайте предположим, что у меня есть объект Person.Каждый человек имеет n количество домов, и в каждом доме есть m количество комнат.В каждой комнате есть специальный идентификатор предмета, и у меня также есть коллекция этих предметов.Итак, мой объект Person выглядит примерно так:
person: {
name: "Fictional Name",
houses: [
{
rooms: [
{
itemId : "q23434c23"
},{
itemId : "q34c356b5"
},{...}
]
},{...}
]
}
Теперь, когда я собираю свою коллекцию person , я пытаюсь $lookup
собрать все эти itemId
внутри нее и сохранить их.как переменная.Проблема в том, что я не знаю, как их искать.Я попробовал запустить приведенный ниже код, но он работает только для первого Дома:
db.persons.aggregate([
{
$lookup: {
from: "items",
localField: "houses.rooms.itemId",
foreignField: "_id",
as: "myItems"
}
},{
$project: {
name: 1,
myItems: "$myItems"
}
}
])
Редактировать: вещь выглядит примерно так:
item: {
_id: "q23434c23",
type: "PLASTIC",
description: "basic description"
}