首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >合计和计数不起作用

合计和计数不起作用
EN

Stack Overflow用户
提问于 2018-12-11 09:27:45
回答 1查看 238关注 0票数 0

我有一个在当前状态下工作的脚本,但是如果您不注释组下的计数并尝试进行计数,它就不能工作,它会出错,不完全确定原因。以下还有其他问题:

代码语言:javascript
运行
复制
db.getCollection("9SP_Data").aggregate([

{"$match" : {"_id.object_category" : "revenue-transaction"}},
// include match for range of one year 
// include match for company
// maybe include extra parameters like origin_category or origin_name from customer settings for metric
    {"$unwind" :  "$line_items"},
    {"$match"  :  {"line_items.item_category":"sales-revenue"}},
    {"$group" : {
       "_id":
           {
            "company" : "$_id.company",
            "sum_by_date":  { $substrBytes: [ "$_id.transaction_date", 0, 6 ] },
            //  4 - by year
            //  6 - by month 
            //  8 - by date 
            // 10 - by hour 
            // 12 - by minute 
            "category" : "$line_items.item_category",
            "origin_category" : "$_id.object_origin_category",
            "origin_type" : "$_id.object_origin_type",
            "object_origin" : "$_id.object_origin"},
            "metric_value"  : { $sum: "$line_items.item_net_total_value" },
//                { $count: "metric_volume" }
}},
{"$project" : {
    "_id.company"               : "$_id.company",
    "_id.metric_name"           : {$literal : "revenue"},
    "_id.metric_category"       : {$literal : "sales"},
    "_id.metric_type"           : {$literal : "month"},
    "_id.metric_lookup"         : "$sum_by_date",
    "_id.object_origin_category": "$_id.origin_category",
    "_id.object_origin_type"    : "$_id.object_origin_type",
    "_id.object_origin"         : "$_id.object_origin",
    "metric_value"              : "$metric_value"
//        ,"metric_volume"             : "$metric_volume"
}}
])

我以前没有使用过$count,mongoDb文档也帮不了我。

我现在得到的结果是:

代码语言:javascript
运行
复制
{
"_id" : {
    "metric_name" : "revenue",
    "metric_category" : "sales",
    "metric_type" : "month",
    "object_origin_category" : "point-of-sale",
    "object_origin" : "vend"
},
"metric_value" : 2099.9997
}

我没有得到公司,但我知道为什么,它不存在于我的数据集。

我不知道为什么_id.object_origin_type还没通过分类

不知道为什么_id.metric_lookup也不出来

不是metric_volume,它来自有问题的$count

下面是聚合使用的示例原始文档:

代码语言:javascript
运行
复制
{
"_id" : {
    "connection" : "cb1c4a56-1544-4e9d-a433-abb33429a300",
    "transaction_date" : 20170714020700,
    "transaction_date_utc" : "2017-07-14 02:07:00",
    "object_class" : "goods-service-transaction",
    "object_category" : "revenue-transaction",
    "object_type" : "receipt",
    "object_origin_category" : "point-of-sale",
    "object_origin_type" : "offline",
    "object_origin" : "vend",
    "transaction_status" : "CLOSED",
    "related_reference" : "41"
},
"object_creation_date" : "20181210120902",
"party_identifier" : "WALKIN",
"staff_identifier" : "02dcd191-ae2b-11e6-f485-7967ed9c6343",
"staff_name" : "uat1@9spokes.com",
"line_items" : [
    {
    "item_name" : "Dress Shirt / Polyester / Large",
    "item_system_id" : "02dcd191-ae20-11e6-f485-7967eef9a797",
    "item_identifier" : "10024",
    "item_category" : "sales-revenue",
    "item_type" : "goods-service",
    "item_quantity" : 1,
    "item_net_unit_sale_value" : 61.3636,
    "item_net_unit_discount_value" : 0,
    "item_unit_tax_value" : 6.8182,
    "item_net_total_value" : 61.3636,
    "item_total_tax_value" : 6.81818,
    "item_total_gross_value" : 68.18182
}
]
}

谢谢你的帮助。哑光

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-11 11:01:37

$count是聚集管道级,您尝试使用它作为聚合管道操作符。您必须将$count放在$group之后,然后计算组数(如果是这样的话),或者简单地使用"metric_volume":{$sum:1} (当然是在_id声明之后)来计数分组文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53721035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档