2017-12-27 9 views
0

私は別々に各機能をカウントしたいと思いますが、私は間違ったことをする必要があります。MongoDB unwind groupは何も返しません

$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 }