2016-05-29 78 views
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" } 
      ] 
     } 
    ] 
} 

我如何可以提取每一個不同的數組2獨特的「價值」?我正在尋找的最終結果就像"1","3","5","7",沒有重複的值。

回答

0

只需使用distinct()方法和dot notation即可訪問「值」字段。

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

這將產生:

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

謝謝,這正是我一直在尋找:) – Vonmood