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

Extracting unique elements from array within different arrays

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

{
    "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 中提取唯一的 "value"?我正在寻找的最终结果类似于 "1","3","5","7",没有重复值。

只需使用 distinct() method and the dot notation 访问 "value" 字段。

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

产生:

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