MongoDB独有的数量

时间:2015-07-03 17:50:37

标签: mongodb

您好我会尝试给出一个我想要实现的简单示例,我尝试使用聚合管道并且区别但我有点迷失

我有以下记录

item1 - A : "xxxx", U : "1111"
item2 - A : "xxxx", U : "2222"
item3 - A : "bbbb", U : "1111"
item4 - A : "bbbb", U : "3333"
item4 - A : "xxxx", U : "3333"

我正在尝试编写一个查询,它会给我一个唯一的U计数,其中U有match A = "xxxx" and A = "bbbb"

的记录

所以上面的情况计数是2,因为只有两个用户有bbbb and xxxx的记录

1 个答案:

答案 0 :(得分:1)

使用聚合怎么样? 原始数据:

> db.items.find({}, {_id: 0})
{ "A" : "xxxx", "U" : "1111" }
{ "A" : "xxxx", "U" : "2222" }
{ "A" : "bbbb", "U" : "1111" }
{ "A" : "bbbb", "U" : "3333" }
{ "A" : "xxxx", "U" : "3333" }

汇总查询:

> db.items.aggregate([{$group: {_id: '$U', alist: {$push: '$A'}}}, {$match: {alist: {$all: ['bbbb', 'xxxx']}}}])
{ "_id" : "3333", "alist" : [ "bbbb", "xxxx" ] }
{ "_id" : "1111", "alist" : [ "xxxx", "bbbb" ] }