У меня есть модель двухуровневой структуры в MongoDB, как показано ниже:
export class ProductTypeModel {
_id: ObjectID;
name: string;
children: {
_id: ObjectID,
name: string,
icon: string
}[];
}
Она представляет типы продуктов в моем приложении.На самом деле children
имеет почти те же свойства, что и базовая модель, за исключением того, что у него есть дополнительное свойство icon
.
Теперь у меня есть такие данные:
{
"_id" : ObjectId("5b9378d9a842a7557223ebfa"),
"name" : "Clothes",
"children" : [ {
"_id" : ObjectId("5b9378d9a842a7557223ebf6"),
"name" : "Men",
"icon": "xxx"
}, {
"_id" : ObjectId("5b9378d9a842a7557223ebf7"),
"name" : "Women",
"icon": "xxx"
}, {
"_id" : ObjectId("5b9378d9a842a7557223ebf8"),
"name" : "Shoes",
"icon": "xxx"
}, {
"_id" : ObjectId("5b9378d9a842a7557223ebf9"),
"name" : "Underwear",
"icon": "xxx"
} ]
}
Я хочу, чтобы онибыть выбранным как:
[
{ "_id" : ObjectId("5b9378d9a842a7557223ebfa"), "name" : "Clothes", "parent": null },
{ "_id" : ObjectId("5b9378d9a842a7557223ebf6"), "name" : "Men", "icon": "xxx", "parent": ObjectId("5b9378d9a842a7557223ebfa") },
{ "_id" : ObjectId("5b9378d9a842a7557223ebf7"), "name" : "Women", "icon": "xxx", "parent": ObjectId("5b9378d9a842a7557223ebfa") },
{ "_id" : ObjectId("5b9378d9a842a7557223ebf8"), "name" : "Shoes", "icon": "xxx", "parent": ObjectId("5b9378d9a842a7557223ebfa") },
{ "_id" : ObjectId("5b9378d9a842a7557223ebf9"), "name" : "Underwear", "icon": "xxx", "parent": ObjectId("5b9378d9a842a7557223ebfa") }
]
Возможно ли сделать это за один запрос в MongoDB?
Я пробовал $unwind
, но он по-прежнему содержит двухуровневую структуру в результатах.