0
选择结果用不同的过滤器我有一个数据集看起来如何都与MongoDB的
{"BrandId":"a","SessionId":100,"Method": "POST"}
{"BrandId":"a","SessionId":200,"Method": "PUT"}
{"BrandId":"a","SessionId":200,"Method": "GET"}
{"BrandId":"b","SessionId":300,"Method": "GET"}
我想通过brandid计数不同的sessionid组和计数,其中方法是POST组由brandid。对于我所提到的例子中,预期的结果是:
{"BrandId:"a","countSession":2,"countPOST":1}
{"BrandId:"b","countSession":1,"countPOST":0}
我知道如果我想指望通过brandid不同seesionid,代码如下:
db.collection.aggregate([
{$group: {
"_id": {
brand: "$BrandId",
session: "$SessionId"
},
count: {$sum: 1}
}},
{$group: {
_id: "$_id.brand",
countSession:{$sum:1}
}}
])
如果我们只需要计算后代码如下:
db.collection.aggregate([
{$match: {Method:"POST"}},
{$group: {
_id: '$BrandId',
countPOST:{$sum:1}
}}
])
但我不把这两个代码结合在一起,并且结果与我刚才提到的预期结果相同?任何人都可以帮忙
嗨,如果你使用我在问题中提到的相同的示例数据,你可以结果与预期结果不符。 – erkpwejropi
代码不正确,因为它仅使用POST过滤数据。有一些品牌没有POST,我仍然需要数这个品牌。我需要结合不同过滤器的数据。这是我遇到问题的地方。 – erkpwejropi
@erkpwejropi在你的帖子中,你说*通过brandid统计不同的SessionId组,并计算方法是POST * – styvane