I have a list of documents with these fields id:'int', category:'text', field:'text', and a list of items[{title, value}]
documents= [
{ "id":"1",
"category": "education",
"field": "science",
"items": [
{
"title": "item 1",
"value": "10"
},
{
"title": "item 2",
"value": "102"
},
{
"title": "item 4",
"value": "12"
}
]
},
{ "id":"2",
"category": "education",
"field": "science",
"items": [
{
"title": "item 1",
"value": "4"
},
{
"title": "item 2",
"value": "23"
},
{
"title": "item 4",
"value": "45"
}
]
},
{ "id":"3",
"category": "fitness",
"field": "body",
"items": [
{
"title": "item 1",
"value": "87"
},
{
"title": "item 5",
"value": "45"
},
{
"title": "item =3",
"value": "23"
}
]
},
{ "id":"4",
"category": "education",
"field": "culture",
"items": [
{
"title": "item 1",
"value": "187"
},
{
"title": "item 5",
"value": "145"
},
{
"title": "item 3",
"value": "123"
}
]]
i'm working with mongodb (beginner) and i'm confused about how to group those documents firstly by category, then by field, then by item's title to push their value in array like a list of values history. the desired result:
newDocument=[
{ "newid":"1",
"category": "education",
"field": "science",
"items": [
{
"title": "item 1",
"value": ["10","4"]
},
{
"title": "item 2",
"value": ["102","23"]
},
{
"title": "item 4",
"value": ["12", "45"]
}
]
},
{ "newid":"2",
"category": "education",
"field": "culture",
"items": [
{
"title": "item 1",
"value": ["187"]
},
{
"title": "item 5",
"value":["145"]
},
{
"title": "item 3",
"value": ["123"]
}
]
}
{ "newid":"3",
"category": "fitness",
"field": "body",
"items": [
{
"title": "item 1",
"value": ["87"]
},
{
"title": "item 5",
"value":["45"]
},
{
"title": "item 3",
"value": ["23"]
}
]
}
]