2017-12-25 6 views
0

Ich habe eine mongodb Sammlung mit Daten ähnlich wie untermongodb Zählen Array-Elemente basierend auf Kriterien

{ 
_id: 1 
data: [ {id:10, qty: 20}, {id:20, qty: 30}, {id:30, qty: 40}] 
} 

{ 
_id: 2 
data: [ {id:10, qty: 20}, {id:20, qty: 23}, {id:30, qty: 40}] 
} 

Für einen bestimmten _id, ich zählen möchten, wie viele Array-Elemente haben qty field > 25. Zum Beispiel für _id 1, sollte es seine 2 Für _id 2 sollte es 1

Antwort

0

Sie sich unter Abfrage $filter und $size das gefilterte Array keine passenden Ereignis zu zählen, verwenden können.

db.collection_name.aggregate([{"count":{ 
    "$size":{ 
    "$filter":{ 
     "input":"$data", 
     "cond":{"$gt":["$$this.qty",25] 
     } 
    } 
    } 
}}]) 
Verwandte Themen