저는 몽고를 처음 사용하고 "돈"이 참이고 "creationDate"가 다음 달의 "거래"라는 이름의 "거래"라는 이름의 몽고 db 컬렉션에서 총 금액을 얻으려고합니다. 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의 조건을 추가하는 방법을 잘하고 몽고 지급 아니에요. 조건부 집계에 대해 읽었지 만 논리적 조건뿐 아니라 날짜와 달에도 작동하도록하는 방법을 모르겠습니다.
샘플 데이터 :
{ "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 :"
이에 대한 모든 통찰력은 매우 도움이 될 것납니다. 고맙습니다!