Я пытаюсь получить один объект из поиска между объектами массива в другой коллекции.
Коллекция предметов:
{
"_id":"5cd97a35e24f1a253e444605",
"createdOn":"2019-05-13T14:07:10.971Z",
"itemType":"text value",
"fields":[
{
"_id":"5cd97a35e24f1a253e444606",
"fieldConfigRef":"5cd97cbb566d432ac3ebb748",
"value":"text value"
}
],
"__v":0
}
Коллекция элементов конфигурации:
{
"_id":"5cd97cbb566d432ac3ebb747",
"itemType":"Bolletta",
"fields":[
{
"_id":"5cd97cbb566d432ac3ebb749",
"name":"importo",
"label":"Importo",
"fieldType":"number",
"fulltext":true
},
{
"_id":"5cd97cbb566d432ac3ebb748",
"name":"emitettente",
"label":"Emittente",
"fieldType":"string",
"fulltext":true
}
],
"__v":0
}
Я могу присоединиться к ним с помощью свойства _id и fieldConfigRef вложенного массива:
db.items.aggregate([
{
$match: {
_id: ObjectId("5cd97a35e24f1a253e444605")
}
},
{
$lookup: {
from: "itemconfigurations",
localField: "fields.fieldConfigRef",
foreignField: "fields._id",
as: "itemconfig"
}
}
])
Выход:
{
"_id": "5cd97a35e24f1a253e444605"
"createdOn": "2019-05-13T14:07:10.971Z"
"itemType": "Bolletta"
"fields": [
{
"_id": "5cd97a35e24f1a253e444606"
"fieldConfigRef": "5cd97cbb566d432ac3ebb748"
"value": "Eni Gas e Luce"
}
]
"__v": 0
"itemconfig": [
{
"_id": "5cd97cbb566d432ac3ebb747"
"itemType": "Bolletta"
"fields": [
{
"_id": "5cd97cbb566d432ac3ebb749"
"name": "importo"
"label": "Importo"
"fieldType": "number"
"fulltext": true
}
{
"_id": "5cd97cbb566d432ac3ebb748"
"name": "emitettente"
"label": "Emittente"
"fieldType": "string"
"fulltext": true
}
]
"__v": 0
}
]
}
Как получить один массив объединенных объектов между элементами объекта вложенных массивов?