2016-05-29 18 views
1

Ich habe eine Sammlung mit dieser Struktur:Extrahieren einzigartige Elemente aus dem Array in verschiedenen 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" } 
      ] 
     } 
    ] 
} 

Wie kann ich den einzigartigen „Wert“ von jedem anders array2 extrahieren? Das Endergebnis, das ich suche, wäre etwas wie "1","3","5","7" ohne wiederholte Werte.

Antwort

0

Verwenden Sie einfach die distinct()-Methode und die dot notation, um auf das Feld "value" zuzugreifen.

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

, die ergibt:

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

Danke, das ist genau das, was ich gesucht habe :) – Vonmood

Verwandte Themen