Mongo:如何根据以下两个字段之一对文档进行分组?

时间:2016-01-29 02:06:28

标签: mongodb set

如果我的文件看起来像:

{
    _id: 1,
    val1: x,
    val2: aa
},
{
    _id: 2,
    val1: y,
    val2: bb
},
{
    _id: 3,
    val1: x,
    val2: cc
},
{
    _id: 4,
    val1: z,
    val2: bb
}

是否可以将它们分组到MongoDB中,以便文档1和3配对,文档2和4配对?

从本质上讲,如果他们的val1或val2相同,我希望对文档进行分组。此外,文档不可能存在于两个不同的组中。意思是,我应该能够对文档集进行分区。 Mongo可以吗?

最终,我想根据上述标准对我的文档进行分区,然后计算每个子集的大小。

我尝试通过对val1字段进行分组并使用$ addToSet创建一个val2数组来攻击此问题。但后来我被卡住了,因为我不知道在Mongo中合并包含至少一个共同元素的数组的方法。如果我这样做,我可以使用该数组列表并使用$ in再次聚合。

如果我能以任何方式澄清我的问题,请告诉我!

0 个答案:

没有答案