2016-03-14 28 views
0

日期。减去终于搞清楚如何参数使用mongo.bson.from.list()日期汇聚管道后,我一直在用下面的代码片段扯皮得到$min下面的日期的差异,但不断收到rmongodb:聚集

Error in mongo.aggregation(m, collection , aggregation_pipeline) : 
    mongoDB error: 10. Please check ?mongo.get.err for more details. 

这意味着我的BSON组表达虽然可以被mongo.bson.from.list()接受,但被mongo.aggregation()拒绝。

我试过使用list()而不是c()cod而不是它的ISODate定义,有各种引用变化。

cod <- as.POSIXct("2015-01-01 00:00:00" , tz = "GMT") 

grouparg_bson1 <- mongo.bson.from.list(
    list('$group' = list('_id'  = list('ID'  = '$dcmt.cid') , 
          'dtdiff' = list('$min'  = list('$subtract' = c('$dcmt.orddt','ISODate("2015-01-01T00:00:00Z")'))), 
          'tota' = list('$sum'  = '$dcmt.A'), 
          'list' = list('$addToSet' = '$dcmt.B') 
    )) 
) 

我正在使用mongo的最新稳定版本3.2.4。

回答

1

试用版&错误:以下工作。

grouparg_bson1 <- mongo.bson.from.list(
    list('$group' = list('_id'  = list('ID'  = '$dcmt.cid') , 
          'dtdiff' = list('$min'  = list('$subtract' = list('$dcmt.orddt', cod))), 
          'tota' = list('$sum'  = '$dcmt.A'), 
          'list' = list('$addToSet' = '$dcmt.B') 
    )) 
)