2017-03-24 4 views
1

Zum Beispiel doppelte propety Werte haben wir eine Sammlung von Polygonen haben, enthält alle Dokumente EigenschaftMongoDB Dokumente finden, die

coordinates: [ 
    { 
    lat: 63.23598239 
    lng: 37.94858921 
    }, 
    {...} 
] 

Koordinaten Wie können wir alle Dokumente finden, die diese Eigenschaft in der Sammlung kopiert haben. Wir müssen 2 oder mehr Dokumente finden, die dasselbe Koordinatenfeld haben.

Antwort

1

können Sie diese unter Verwendung von Aggregation wie dieses Ziel zu erreichen:

db.test.aggregate([ 
    { 
     $group:{ 
     _id:"$coordinates", 
     sum: { 
      $sum:1 
     }, 
     listId: { 
      $push: "$_id" 
     } 
     } 
    }, 
    { 
     $match:{ 
     sum:{ 
      $gte:2 
     } 
     } 
    } 
]) 

es gibt alle Duplikate Dokumente, zum Beispiel:

{ "_id" : [ { "lat" : 63.23598239, "lng" : 37.94858921 } ], "sum" : 4, "listId": [1, 2, 3, 4] } 
+0

Danke, das ist sehr hilfreich, aber nicht uns Ids nicht zeigen von doppelten Dokumenten, können wir es irgendwie bekommen? – heaks

+0

@heaks sicher sehe meine Bearbeitung – felix

+0

Danke, es hat geholfen! – heaks

Verwandte Themen