1
我是mongo的新手,我試圖從名爲「transactions」的mongo db集合中獲得總金額,其中「paid」爲true,「creationDate」爲月2014年9月,按日分組。然而有條件日期彙總的Mongo聚合
select to_char("creationDate", 'YYYY-MM') as "Month", sum(totalamount)
from transactions
where "creationDate" >= '2014-09-01'
and paid is true
group by "Month"
,我不知道如何添加條件creationDate和蒙戈支付:
在Postgres裏,我可以爲寫這篇文章。我閱讀了有條件的聚合,但我不確定如何讓它在日期和月份以及邏輯條件下工作。
的樣本數據:
{ "totalamount" : 10, "creationDate" : ISODate("2014-09-01T01:00:58.909Z"), "paid" : true}
{ "totalamount" : 30, "creationDate" : ISODate("2014-09-01T03:00:58.909Z"), "paid" : true}
{ "totalamount" : 20, "creationDate" : ISODate("2014-09-02T01:00:58.909Z"), "paid" : true}
這是我的嘗試:
db.transactions.aggregate(
[
{
$group:
{
_id: {
day: { $dayOfMonth: "$creationDate"},
month:
{
$cond: [{ $gte: [$month: "$creationDate", 9]},9,0]
},
year:
{
$cond: [{ $gte: [$year: "$creationDate", 2014]},2014,0]
},
},
collected: {
$sum: {
$cond: [
{"$paid":"true"}, "$totalamount",0]
}
}
}
}
]
)
但是,我越來越"SyntaxError: Unexpected token :"
任何見解,這將是非常有益的。謝謝!