2017-09-09 40 views
0

如何在mongodb集合中的某一个中的股票等于“可用”时计数和累计相同的大小值。如何在猫鼬中计数数组

所需的如下结果:

{_id :'S',count: 5 }, 
{_id :'M',count: 2 }, 
{_id :'L',count: 1 } 
"price" : 123.8, 
"gender" : "women", 
"colour" : "blue", 
"item" : [ 
    { 
     "name" : "ICE DUO ANTHRACITE YELLOW SMALL (S)", 
     "size" : "S", 
     "stock" : "Available", 
     "_id" : ObjectId("59b2829e5acd8e2d14aa84cf") 
    }, 
    { 
     "name" : "ICE DUO ANTHRACITE YELLOW SMALL (L)", 
     "size" : "L", 
     "stock" : "Available", 
     "_id" : ObjectId("59b2829e5acd8e2d14aa84ce") 
    }, 
    { 
     "name" : "ICE DUO ANTHRACITE YELLOW SMALL (M)", 
     "size" : "M", 
     "stock" : "Available", 
     "_id" : ObjectId("59b2829e5acd8e2d14aa84cd") 
    } 
], 

回答

1

如下尝试:

db.users.aggregate([ 
{$match:{stock:'Available'}}, 
{$unwind: 'item'}, 
{$group:{_id: '$size', count:{$sum:1}}} 
]) 
+0

我已经试过这个代码,但我没有得到我想要的结果。 –

+0

那么执行它后你会得到什么? – Sachin

+0

除此之外,我仍然想要匹配stock ='Available' –