我在1个文档中有2个不同的数组,我需要将两个数组合并为1个对象作为键和值。 两个数组都有确切的数值。
原始文件
{
"case_number" : "123",
"questions" : [ "Primary Organ Site","Date of Diagnosis" ],
"answers" : [ "Uterus", "12/12/2017"]
}
我希望他们能够合并到这个
中{
"case_number" : "123",
"result" : {
"Primary Organ Site": "Uterus",
"Date of Diagnosis": "12/12/2017"
}
}
我已经尝试过这个
db.cases.aggregate(
"case_number" : true,
"results": {
"$arrayToObject" : {
$map: {
input: "$answers",
as: "answer",
in: [ "$questions" , "$$answer" ]
}
}
}
)
还有更多其他人。 请帮忙!
答案 0 :(得分:1)
解决问题
db.cases.aggregate(
"case_number" : true,
"results": {
$arrayToObject: {
$map: {
input: "$answers",
as: "answer",
in: [ { $arrayElemAt: [ "$questions", { "$indexOfArray" : [ "$answers", "$$answer" ] } ] }, "$$answer" ]
}
}
},
答案 1 :(得分:0)
试试这个(Mongo 3.6)
db.cases.aggregate([{ "$project": { "result": { "$concatArrays": [ "$questions", "$answers" ] }, "case_number":1 }}])