Reputation: 8783
I'd like to count the number of items in an array of JSON items that match some conditions. My array look like this:
array = [{
name: 'Bob',
age: 24
},
....,
{
name: 'Mary',
age: 23
}]
Rather than looping through the whole array I am trying to get an expression as simple an as elegant as my database request:
db.myCollection.find({ age: 23 }).count()
Is there any best practice? I was thinking of using the underscore library but I couldnt find what I am looking for.
Many thanks for your help.
Upvotes: 7
Views: 10974
Reputation: 28103
Well, you can do this without any 3rd party library and also without looping:
array.filter(function(value) { return value.age === 23 }).length;
And with ES6 it even becomes more terse
array.filter(value => value.age === 23).length;
Upvotes: 20