2016-05-29 79 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