需要在MongoDB中为结果添加“生成的值”

时间:2013-12-06 15:40:57

标签: mongodb

我有一个查询

[ { "$match" : { "vm_id" : "218276"}},{ "$group" : { "_id" : { "$dayOfMonth" : "$ts"} , "public_tx_total" : { "$sum" : "$interface_public_tx_bytes"} , "public_rx_total" : { "$sum" : "$interface_public_rx_bytes"} , "private_tx_total" : { "$sum" : "$interface_private_tx_bytes"} , "private_rx_total" : { "$sum" : "$interface_private_rx_bytes"} , "count" : { "$sum" : 1}}},{ "$sort" : { "_id" : 1}} ]

我要添加一个占用$ ts的密钥并将年份拉出来并将其添加到结果中

year: {$year: "$ts"}

我不确定在不导致错误的情况下放置代码段的位置。

1 个答案:

答案 0 :(得分:1)

您可以通过将以下命令添加到组查询中来完成此操作。

"year" : {$first : { $year:"$ts"}}

您的查询将如下所示:

[
  {"$match":{"vm_id":"218276"}},
  {"$group":{"_id":{"$dayOfMonth":"$ts"}, 
    "year":{$first:{$year:"$ts"}}, 
    "public_tx_total":{"$sum":"$interface_public_tx_bytes"}, 
    "public_rx_total":{"$sum":"$interface_public_rx_bytes"}, 
    "private_tx_total":{"$sum":"$interface_private_tx_bytes"}, 
    "private_rx_total":{"$sum":"$interface_private_rx_bytes"}, 
    "count":{"$sum":1}}},
  {"$sort":{"_id":1}}
]