I am trying to write a mongo query to assign a key name as a value of another key.
query is given below.
db.getCollection(“test”).aggregate({$match:{type:{$in:[“test1”,“test2”,“test3”,“test4”,“test5”]}}},
{$project:{_id:0,name:1,value:1,type:1}},
{$group:{_id:“$type”,variable:{$push:{name:“$name”,value:“$value”,type:“$type”}}}});
the query above is creating the response as given below.
{
“_id” : “test1”,
“variable” : [
{
“name” : “name11”,
“value” : “name11”,
“type” : “test1”
},
{
“name” : “name12”,
“value” : “name12”,
“type” : “test1”
}
]
}
{
“_id” : “test2”,
“variable” : [
{
“name” : “name21”,
“value” : “name21”,
“type” : “test2”
},
{
“name” : “name22”,
“value” : “name22”,
“type” : “test2”
}
]
}
{
“_id” : “test3”,
“variable” : [
{
“name” : “name31”,
“value” : “name31”,
“type” : “test3”
},
{
“name” : “name32”,
“value” : “name32”,
“type” : “test3”
}
]
}
{
“_id” : “test4”,
“variable” : [
{
“name” : “name41”,
“value” : “name41”,
“type” : “test4”
},
{
“name” : “name42”,
“value” : “name42”,
“type” : “test4”
}
]
}
{
“_id” : “test5”,
“variable” : [
{
“name” : “name51”,
“value” : “name51”,
“type” : “test5”
},
{
“name” : “name52”,
“value” : “name52”,
“type” : “test5”
}
]
}
I want to make the response as given below.
{
“_id” : “test1”,
“test1” : [
{
“name” : “name11”,
“value” : “name11”,
“type” : “test1”
},
{
“name” : “name12”,
“value” : “name12”,
“type” : “test1”
}
]
}
{
“_id” : “test2”,
“test2” : [
{
“name” : “name21”,
“value” : “name21”,
“type” : “test2”
},
{
“name” : “name22”,
“value” : “name22”,
“type” : “test2”
}
]
}
{
“_id” : “test3”,
“test3” : [
{
“name” : “name31”,
“value” : “name31”,
“type” : “test3”
},
{
“name” : “name32”,
“value” : “name32”,
“type” : “test3”
}
]
}
{
“_id” : “test4”,
“test4” : [
{
“name” : “name41”,
“value” : “name41”,
“type” : “test4”
},
{
“name” : “name42”,
“value” : “name42”,
“type” : “test4”
}
]
}
{
“_id” : “test5”,
“test5” : [
{
“name” : “name51”,
“value” : “name51”,
“type” : “test5”
},
{
“name” : “name52”,
“value” : “name52”,
“type” : “test5”
}
]
}
basically the variable in the above has to changed to the output of the _id. so key name should be changed according to the value.