2017-01-26 38 views
1

我想按日期来总结各个领域的价格。MongoDB的 - 集料的日期

MongoDB的模式是:

Flow({ 
    dateBuy: {type: Date}, 
    client: {type: String}, 
    price: {type: Number} 
}); 

我使用下面的查询:

db.flow.aggregate([ 
    { 
     "$group":{ 
      "_id":{ 
       "year":{ 
        "$year":"$dateBuy" 
       }, 
       "month":{ 
        "$month":"$dateBuy" 
       }, 
       "day":{ 
        "$dayOfMonth":"$dateBuy" 
       } 
      } 
     }, 
     "value":{ 
      "$sum":"$price" 
     } 
    } 
]) 

但是下面的消息是:

2017-01-26T11:55:35.702-0200 E QUERY SyntaxError: Unexpected token >

有人会知道如何解决这个问题,我不能确定我在做什么w ^荣?

+0

试试这个'db.flow.aggregate([ { “$组”:{ “ _id “:{ ”年“:{ ”$年“:” $ dateBuy “ }, ”月“:{ ”$月“: ”$ dateBuy“ }, ”天“:{ ” $请将dayOfMonth “:” $ dateB UY” }} , “值”:{ “$总和”: “$价格” }} } ])' – Veeram

+0

Appeared'2017-01-26T12:24:52.555-0200êQUERY的SyntaxError :意外的令牌>' – rafaelcb21

回答

2

你错过了压痕 - value应该在同一水平_id字段定义,$组操作员里面

db.flow.aggregate([ 
    { 
     "$group": { 
      "_id":{ 
       "year":{ "$year":"$dateBuy" }, 
       "month":{ "$month":"$dateBuy" }, 
       "day":{ "$dayOfMonth":"$dateBuy" } 
      }, 
      "value":{ "$sum":"$price" } 
     } 
     // your "value" is defined here, outside of $group operator 
    } 
]) 
+0

我把它放在同一个级别只错误继续'意外标记>' – rafaelcb21

+0

@ realcb21应该没有错误,仔细检查所有支架或只是复制粘贴的答案使用上面完全相同的代码之后 –

+1

我的错误的工作,谢谢@Sergey Berezovskiy – rafaelcb21