#mongodb
#mongodb
Вопрос:
В качестве примера у меня есть документы, подобные приведенным ниже :
{ "_id" : ObjectId("5ef0f23647c2b4dbae99105c"), "subcategory_name" : "ENTERPRISE ASSET MANAGEMENT", "category_id" : ObjectId("5ef0ec5547c2b4dbae990e9d"), "category_name" : "ERP", "status" : 0 }
{ "_id" : ObjectId("5ef0f23647c2b4dbae991062"), "subcategory_name" : "ENVIRONMENTAL HEALTH AND SAFETY SOFTWARE", "category_id" : ObjectId("5ef0ec5547c2b4dbae990e9d"), "category_name" : "ERP", "status" : 0 }
тогда я хочу получить такой результат :
{
"category_id": ObjectId("5ef0ec5547c2b4dbae990e9d"),
"category_name": "ERP",
"subcategory_list": [
{"_id": ObjectId("5ef0f23647c2b4dbae99105c"), "subcategory_name": "ENTERPRISE ASSET MANAGEMENT"},
{"_id": ObjectId("5ef0f23647c2b4dbae991062"), "subcategory_name": "ENVIRONMENTAL HEALTH AND SAFETY SOFTWARE"}
]
}
Ответ №1:
Вы можете использовать group
для этого
[
{
$group: {
_id: "$category_id",
category_id: {
"$first": "$category_id"
},
category_name: {
$first: "$category_name"
},
subcategory_list: {
$addToSet: {
_id: "$_id",
subcategory_name: "$subcategory_name",
}
}
}
},
{
$project: {
_id: 0
}
}
]
Работает игровая площадка Mongo