1

この構造のコレクションがあります:

{
    "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"、繰り返される値がないようなものになります。

4

1 に答える 1

0

distinct()メソッドとドット表記を使用して、「値」フィールドにアクセスするだけです。

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

これにより、次の結果が得られます。

[ "1", "3", "5", "7" ]
于 2016-05-29T13:33:48.777 に答える