从不同数组中的数组中提取唯一元素

时间:2016-05-29 12:57:09

标签: mongodb mongodb-query robo3t

我有一个这种结构的集合:

{
    "name": "1",
    "array1": [
        {
            "arrayname1A" : "A",
             "array2": [
                 { "value": "1" },
                 { "value": "3" }
             ]
        },
        {
             "arrayname1B": "B",
             "array2": [
                 { "value": "5" },
             ]
        }
    ]
},
{
    "name": "2",
    "array1": [
        {
            "arrayname1A": "A",
            "array2": [
                { "value": "1" },
                { "value": "7" }
            ]
        }
    ]
}

如何从每个不同的array2中提取唯一的“值”?我正在寻找的最终结果将是"1","3","5","7",没有重复的值。

1 个答案:

答案 0 :(得分:0)

只需使用distinct()方法和dot notation即可访问“值”字段。

db.collection.distinct('array1.array2.value')

产生:

[ "1", "3", "5", "7" ]