2017-12-27 8 views
0

각 기능을 개별적으로 계산하고 싶습니다.하지만 잘못하고 있어야합니다.MongoDB unwind group returns nothing

$unwind 절을 추가하면 쿼리가 아무 것도 반환하지 않습니다.

> db.animals.insert({name:"dog1", features:[{"desc": "large size"}, {"desc": "golden"}, {"desc": "hairy"}]}) 
WriteResult({ "nInserted" : 1 }) 
> db.animals.insert({name:"dog2", features:[{"desc": "large size"}, {"desc": "black"}, {"desc": "short legs"}]}) 
WriteResult({ "nInserted" : 1 }) 
> db.animals.aggregate([{ $group: { "_id": "$features.desc", "count": { $sum: 1} }}]) 
{ "_id" : [ "large size", "black", "short legs" ], "count" : 1 } 
{ "_id" : [ "large size", "golden", "hairy" ], "count" : 1 } 
> db.animals.aggregate([{$unwind: "$features.desc"}, { $group: { "_id": "$features.desc", "count": { $sum: 1} }}]) 

답변

0

실수로 $ unwind 절에 ".desc"를 추가했습니다. 제거하면 문제가 해결됩니다.

> db.animals.aggregate([{$unwind: "$features"}, { $group: { "_id": "$features.desc", "count": { $sum: 1} }}]) 
{ "_id" : "short legs", "count" : 1 } 
{ "_id" : "large size", "count" : 2 } 
{ "_id" : "golden", "count" : 1 } 
{ "_id" : "black", "count" : 1 } 
{ "_id" : "hairy", "count" : 1 }