Я использую этот код внутри агрегации моделей
{$project:{
//for brevity
}},
{$project:{
"employe_detail":{
"$map":{
"input":"$employe_detail",
"as":"names",
"in":{
"name":{"$concat":["$$names.first_name",
" ","$$names.other_names"," ",
"$$names.last_name"]}
}
}
}
}}
Это результат
{ "employe_detail" : [ { "name" : "Brian Smith" } ] }
{ "employe_detail" : [ { "name" : "Josh Clefton" } ] }
{ "employe_detail" : [ { "name" : "Treasure Dwayne" } ] }
, когда я пытаюсь расширить поля результата, вывод
{$project:{
//for brevity
}},
{$project:{
"employe_detail":{
"$map":{
"input":"$employe_detail",
"as":"names",
"in":{
"name":{"$concat":["$$names.first_name",
" ","$$names.other_names"," ",
"$$names.last_name"]},
"dept":"$$names.activity_year.activity_detail.dept",
"time_spent": "$$names.activity_year.activity_detail.activity_time_spent.time_spent",
"shift": "$$names.activity_year.activity_detail.activity_time_spent.shift"
}
}
}
}}
Результат был
{ "employe_detail" : [ { "name" : "Brian Smith", "dept" : [ [ "spray", "smoothing", "assembling", "packaging" ] ],"time_spent" : [ [ [ 6 ], [ 15 ], [ 7 ], [ 8 ]] ], "shift" : [ [ [ "afternoon" ], [ "afternoon" ], [ "morning" ], [ "morning" ] ] ]} ] }
{ "employe_detail" : [ { "name" : "Josh Clefton", "dept" : [ [ "spray", "shining", "shaping", "smoothing"] ],"time_spent" : [ [ [ 5 ], [ ], [ 8 ], [ 10 ] ] ], "shift" : [ [ [ "afternoon" ], [ ], [ "night" ], [ "night" ] ] ] } ] }
{ "employe_detail" : [ { "name" : "Treasure Dwayne", "dept" : [ [ "spray", "shaping", "smoothing", "assembling" ] ], "time_spent" : [ [ [ 3 ], [ 9 ], [ 13 ], [ 9 ] ] ], "shift" : [ [ [ "morning" ], [ "morning" ], [ "morning" ], [ "morning" ] ] ] } ] }
Пожалуйста, как мне (по крайней мере) получить что-то похожее на это
{ "employe_detail" : [ { "name" : "Brian Smith",
{"dept" : "spray", "time_spent":6, "shift": "afternoon"},
{"dept" : "smoothing", "time_spent": 15 , "shift": "afternoon"},
{"dept" : "assembling", "time_spent": 7, "shift": "morning"},
{"dept" : "packaging", "time_spent": 8, "shift": "morning"}
}]}
{ "employe_detail" : [ { "name" : "Josh Clefton",
{"dept" : "spray", "time_spent":5, "shift": "afternoon"},
{"dept" : "shining", "time_spent": , "shift": },
{"dept" : "shaping", "time_spent": 8, "shift": "night"},
{"dept" : "smoothing", "time_spent": 10, "shift": "night"}
}]}
Желательно, чтобы я хотел, чтобы данные сталиимя переменной, например, вместо time_spent в качестве имени переменной, это должны быть данные для отдела, которые будут именем переменной
{ "employe_detail" : [ { "name" : "Josh Clefton",
{"spray":5, "shift": "afternoon"},
{"shining": , "shift": },
{"shaping": 8, "shift": "night"},
{"smoothing": 10, "shift": "night"}
}]}
Пожалуйста, как мне достичь вышеуказанного
ОБНОВЛЕНИЕ Это пример данных
{ "_id" : ObjectId("5bd548380a84d90b5c2bb416"), "details" : {"first_name" : "Brian", "other_names" : "Stone", "last_name" : "Smith", "gender" : "male", "date_of_birth" : ISODate("2009-03-05T00:00:00Z") }, "contact" : [ { "_id" : ObjectId("5bd548380a84d90b5c2bb417"), "residential_address" : "no 5 smith"} ], "health" : [ { "_id" : ObjectId("5bd548380a84d90b5c2bb419"), "illness_name" : "Cold", "sypmtom" : "Sneezing", "normal_treatment" : ""} ], "activity_year" : { "_id" : ObjectId("5bd548380a84d90b5c2bb41a"), "activity_detail" : [ { "_id" : ObjectId("5bd548380a84d90b5c2bb41b"), "dept" : "spray", "activity_time_spent" : [ ] }, { "_id" : ObjectId("5bd548390a84d90b5c2bb41c"), "dept" : "smoothing", "activity_time_spent" : [ ] }, { "_id" : ObjectId("5bd548390a84d90b5c2bb41e"), "dept" : "assembling", "activity_time_spent" : [ ] }, { "_id" : ObjectId("5bd548390a84d90b5c2bb420"), "dept" : "packaging", "activity_time_spent" : [ ] }, { "_id" : ObjectId("5bd54add0a84d90b5c2bb5c5"), "dept" : "shining", "activity_time_spent" : [ ] }, { "_id" : ObjectId("5bff847078c700209c1b515f"), "dept" : "shining", "activity_time_spent" : [ { "_id" : ObjectId("5c1d659083e7551854c1681d"), "time_spent" : 10, "shift" : "afternoon", }, { "_id" : ObjectId("5c1d659083e7551854c1681e"), "time_spent" : 10, "shift" : "afternoon"} ] } ]}, "__v" : 14 },
{ "_id" : ObjectId("5bd548bf0a84d90b5c2bb45b"), "details" : {"first_name" : "Treasure", "other_names" : "Bliss", "last_name" : "Dwayne", "gender" : "female", "date_of_birth" : ISODate("2010-10-28T00:00:00Z") }, "contact" : [ { "_id" : ObjectId("5bd548bf0a84d90b5c2bb45c"), "residential_address" : "no 5 smith"} ], "health" : [ {"_id" : ObjectId("5bd548bf0a84d90b5c2bb45e"), "illness_name" : "Cold", "sypmtom" : "Sneezing", "normal_treatment" : ""} ], "activity_year" : { "_id" : ObjectId("5bd548bf0a84d90b5c2bb45f"), "activity_detail" : [ { "dept" : "spray", "activity_time_spent" : [ ] }, { "dept" : "smoothing", "activity_time_spent" : [ { "_id" : ObjectId("5c200ccea72a3e11f895dc26"), "time_spent" : 3, "shift" : "morning"}, { "_id" : ObjectId("5c215d2eea2ebe1c8043ccde"), "time_spent" : 5, "shift" : "morning"} ] }, { "dept" : "packaging", "activity_time_spent" : [ { "_id" : ObjectId("5c203e75084852185c583e13"), "time_spent" : 9,"shift" : "afternoon"}, { "_id" : ObjectId("5c20f50f4feffe0b00e8e9f7"), "time_spent" : 18,"shift" : "afternoon"} ] }, { "dept" : "shining", "activity_time_spent" : [ { "_id" : ObjectId("5c200b38a72a3e11f895dc08"), "time_spent" : 9, "shift" : "night", }, { "_id" : ObjectId("5c215acdea2ebe1c8043ccc0"), "time_spent" : 9, "shift" : "night" } ] }] }, "__v" : 9 },