0

在最终弄清楚如何使用日期参数化聚合管道之后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。

4

1 回答 1

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' )
   ))
 )
于 2016-03-15T14:31:49.970 回答