У меня есть две коллекции MongoDB, и я хочу заменить весь идентификатор на объект изображения.
Коллекция набора данных:
{
_id: 5d888b3a29cf9a5e93d80756,
date: 2019-09-23T11:33:00.000Z,
robot: { _id: 5d9c7caf0ad3ea493210527b, name: 'erx01' },
images:[
{
rgb: 5da57db7cacd6e00c2a0f677,
ir: 5da57db7cacd6e00c2a0f678,
lbl: 5da57db7cacd6e00c2a0f676
},
{
rgb: 5da5808f65f3440032edee78,
ir: 5da5808f65f3440032edee79,
lbl: 5da5808f65f3440032edee77
}
]
}
Коллекция изображений:
{
_id: 5da57db7cacd6e00c2a0f677,
filename: 'iI7gVXyf31b1wedzBXD.png',
metadata: [Object],
type: 'RGB'
}
Вот что я попробовал и получил в результате:
{
$unwind: "$images"
},
{
$lookup: {
from: "image",
localField: "images.rgb",
foreignField: "_id",
as: "images.rgb"
}
},
{
$lookup: {
from: "image",
localField: "images.lbl",
foreignField: "_id",
as: "images.lbl"
}
},
{
$lookup: {
from: "image",
localField: "images.ir",
foreignField: "_id",
as: "images.ir"
}
},
Результат:
images: {
rgb: [ [Object] ],
ir: [ [Object] ],
lbl: [ [Object] ]
}
Что я хочу:
images : [
{
rgb: [Object],
ir: [Object] ,
lbl: [Object]
}
{ ... }
]
Это наполовину работает, потому что яполучил правильную информацию, но не в виде массива. Мне не нужен массив изображений RGB / IR и LBL, а массив объектов, содержащий одно изображение RGB / IR / LBL.
Я тоже пытался использовать раскрутку, но ничего не получил.