场景:会员可以从4种不同的活动中选择(是/否)。
基于以下输入,
[
{
name:"member1",
activity:"activity1",
selected:true
},
{
name:"member1",
activity: "activity3",
selected:false
},
{
name:"member2",
activity:"activity2",
selected:true
},
{
name:"member2",
activity: "activity4",
selected:false
}
]
需要如下结果,按活动1到4的顺序显示成员对所有4个活动的选择(包括用户尚未做出决定的活动)
[
{
name:"member1",
activities:[true,null,false,null]
},
{
name:"member2",
activities:[null,true,null,false]
}
]
我尝试了以下代码,
db.collection("MemberActivities").aggregate(
[
{
$group:
{
_id: "$MemberName",
activities: { $push: "$selected"}
}
}
]
但是,它只包含用户做出决定的活动(是/否)。
[
{
_id:"member1",
activities:[true,false]
},
{
_id:"member2",
activities:[true,false]
} ]
请指导如何获得理想的结果。