2017-10-11 4 views
0

モンゴ - 私はこのようになり、文書持つ個別のマッチ配列全体

{"arr":["a","b","c"]}, 
{"arr":["a","b","x"]}, 
{"arr":["c","b","a"]}, 
{"arr":["a","b","c"]} 

私はすべてのユニークな配列を取得するために明確な呼びたいが、しかし、配列を照会することは、このことを意味、デフォルトで要素にマッチする:

db.getCollection("mycoll").distinct("arr",{}); 

戻り値:

["a","b","c","x"] 

代わりに

[["a","b","c"], 
["a","b","x"], 
["c","b","a"]] 

個別配列を照会するにはどうすればよいですか?必要に応じて、私も各結果の発生回数を取得してみたい:

{["a","b","c"] : 2, 
["a","b","x"] : 1, 
["c","b","a"] : 1} 
+0

集約パイプラインで '$ sum'を持つ配列に' $ group'を使用してください。 – Veeram

+0

これは私のために働いた: 'db.mycoll.aggregate({$ group:{$ id:" $ arr " {_id: "$ arr"、カウント:{$ sum:1}}}) '。ありがとうございました!あなたが答えると、私はそれを受け入れるでしょう。 – Porthos3

+0

[Group by sum mongodb](https://stackoverflow.com/questions/17909694/group-by-sum-mongodb)の可能な複製 – Veeram

答えて

1

あなたはアグリゲーションパイプラインで$sumarr$groupを使用することができます。

db.mycoll.aggregate({$group:{_id:"$arr", count:{$sum:1}}}) 
関連する問題