Javascript 基于字段mongodb的公共值对集合进行分组

Javascript 基于字段mongodb的公共值对集合进行分组,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我的收藏品是这样的 { “电子邮件”:tp@sd.com", “订阅”:[ { “默认”:false, “间隔”:“每周”, “标签”:[ { “名称”:“第1组”, “值”:“g1-value-1” }, { “名称”:“第1组”, “值”:“g1-value-2” }, { “名称”:“第2组”, “值”:“g2-value-1” }, { “名称”:“第三组”, “值”:“g3-value-1” }, { “名称”:“第三组”, “值”:“g3-value-2” } ] }, { “电子

我的收藏品是这样的

{
“电子邮件”:tp@sd.com",
“订阅”:[
{
“默认”:false,
“间隔”:“每周”,
“标签”:[
{
“名称”:“第1组”,
“值”:“g1-value-1”
},
{
“名称”:“第1组”,
“值”:“g1-value-2”
},
{
“名称”:“第2组”,
“值”:“g2-value-1”
},
{
“名称”:“第三组”,
“值”:“g3-value-1”
},
{
“名称”:“第三组”,
“值”:“g3-value-2”
}
]
},
{
“电子邮件”:lol@xyz.com",
“订阅”:[
{
“默认”:false,
“间隔”:“每周”,
“标签”:[
{
“名称”:“第1组”,
“值”:“g1-value-2”
},
{
“名称”:“第1组”,
“值”:“g1-value-1”
},
{
“名称”:“第2组”,
“值”:“g2-value-1”
},
{
“名称”:“第2组”,
“值”:“g2-value-3”
},
{
“名称”:“第三组”,
“值”:“g3-value-1”
}
]
}

}
令人惊讶的是,这是一个非常简单的查询:

db.collection.aggregate([
    {
        $unwind: "$subscriptions"
    },
    {
        $unwind: "$subscriptions.tags"
    },
    {
        $group: {
            _id: "$subscriptions.tags.value",
            emails: {$addToSet: "$email"}
        }
    }
]); 
结果如下所示:

[
    {
        _id: "g1-value-1",
        emails: [
            "tp@sd.com",
            "lol@xyz.com"
        ]
    },
    {
        _id: "g1-value-2",
        emails: [
            "tp@sd.com",
            "lol@xyz.com"
        ]
    },
    {
        _id: "g2-value-1",
        emails: [
            "tp@sd.com",
            "lol@xyz.com"
        ]
    },
    {
        _id: "g2-value-3",
        emails: [
            "lol@xyz.com"
        ]
    },
    {
        _id: "g3-value-1",
        emails: [
            "tp@sd.com",
            "lol@xyz.com"
        ]
    },
    {
        _id: "g3-value-2",
        emails: [
            "tp@sd.com",
        ]
    },
]

你能告诉我你的样本输出是什么吗?如果我看到预期的输出,我可以让它工作。谢谢。