У меня есть коллекция парковок, как:
parking: {
_id: xxxxxx,
name: xxxxxx,
vehicles: [{vehicleId: xxxxx, bid: xxxxx}...]
}
и коллекция автомобилей:
car: {
_id: "xxxx",
attributes: [xxxxx],
color: "xxxx"
}
Когда я делаю Агрегация поиска :
$lookup: {
from: "car",
localField: "vehicles.vehicleId",
foreignField: "_id",
as: "cars"
}
Я получаю:
parking: {
_id: xxxxxx,
name: xxxxxx,
vehicles: [{vehicleId: xxxxx, bid: xxxxx}],
cars: [car1,car2...]
}
Поэтому я борюсь с объединением массива новых автомобилей с объектами в массиве транспортных средств, которые соответствуют идентификатору. Могу ли я как-то заменить идентификатор транспортного средства на соответствующий документ автомобиля?
Я пробовал это, но групповая операция удаляет поле имени из парковки
db.parking.aggregate([
{ "$unwind": "$vehicles" },
{ "$lookup": {
"from": "car",
"as": "vehicles.vehicle",
"localField": "vehicles.vehicleId",
"foreignField": "_id"
}},
{ "$unwind": "$vehicles.vehicle" },
{ "$group": {
"_id": "$_id",
"vehicles": { "$push": "$vehicles" }
}}
])