mongodb:在聚合中减去日期

rmongodb: substract date in aggregation

在最终弄清楚如何使用 mongo.bson.from.list() 参数化具有日期的聚合管道之后,我一直在与下面的代码片段争论以获得下面日期差异的 $min,但保持获得

 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。

试错:以下工作。

 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' )
   ))
 )