Art*_*ton 1 mongodb mongodb-query aggregation-framework
假设我有以下格式的匹配集合
{user1: "a", user2: "b"},
{user1: "a", user2: "c"},
{user1: "b", user2: "d"},
{user1: "b", user2: "c"},
{user1: "b", user2: "e"},
{user1: "c", user2: "f"}
Run Code Online (Sandbox Code Playgroud)
我想知道哪个用户具有最大的外观(在user1或user2中).结果应采用此格式,按出现次数排序.
{"user": "b", count:4},
{"user": "c", count:3},
{"user": "a", count:2},
{"user": "d", count:1},
{"user": "f", count:1},
{"user": "e", count:1}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以分组两个字段的值?
像match.aggregate({$ group:{_ id:{$或:["user1","user2]}},计数:{$ sum:1}})
db.match.aggregate([
{$project: { user: [ "$user1", "$user2" ]}},
{$unwind: "$user"},
{$group: {_id: "$user", count: {$sum:1}}}
])
Run Code Online (Sandbox Code Playgroud)
第一阶段将每个文档投影到用户阵列中
{user: ["a", "b"]},
{user: ["a", "c"]},
{user: ["b", "d"]},
...
Run Code Online (Sandbox Code Playgroud)
接下来我们展开数组
{user:"a"},
{user:"b"},
{user:"a"},
{user:"c"},
{user:"b"},
...
Run Code Online (Sandbox Code Playgroud)
并在最后进行简单的分组
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |