2017-03-02 4 views
0

모든 항목을 날짜순으로 그룹화하려고합니다. 그룹에 NULL을 그룹화하려고하는데 구문이 올바르지 않습니다.NULL을 포함하여 월 단위로 그룹화

내가

db.DateCollection.aggregate({$project:{year:{$ifNull:[$year:"$received-date","NULL"]},month:{$ifNull:[$month:"$received-date","NULL"]}}},{$group:{_id:{year:"$year",month:"$month"},count:{$sum:1}}}); 

을 시도이 제공 '실종] 요소 목록 후'나는 때문에 $ IFNULL 내에서 $ 년의 같은데요.

또한이 그것이 날짜로 NULL 변환 할 수 없기 때문에 추측 '은 날짜에 BSON 형 NULL로 변환 할 수 없습니다'제공

db.DateCollection.aggregate([{$group:{_id:{$month:"$received-date"},count:{$sum:1}}}]); 

을 시도했다.

+0

NULL이 실제로 NULL입니까, 아니면 존재하지 않는 필드입니까? – lascort

+0

그런데 .. 어떤 몽고 버전을 사용하고 있습니까? – lascort

+0

일부는 Null이며 일부는 존재하지 않으며 일부는 비어 있습니다. – f1wade

답변

0

누락 된 날짜 항목에 대한 기본 날짜 값을 사용할 수 있습니다. 아래 예제에서는 기본값 (1970-01-01)을 사용했습니다.

db.DateCollection.aggregate({$project:{"received-date":{$ifNull:["$received-date",new Date(0)]}}}, 
{$group:{_id:{year:{$year:"$received-date"},month:{$month:"$received-date"}},count:{$sum:1}}}); 
) 
관련 문제