简体   繁体   English

rmongodb:减去合计日期

[英]rmongodb: substract date in aggregation

After finally figuring out how to parameterize an aggregation pipeline with a date using mongo.bson.from.list() , I've been wrangling with the snippet below to get the $min for the date difference below, but keep getting 在最终弄清楚如何使用mongo.bson.from.list()参数化带有日期的聚合管道之后,我一直在与下面的代码段进行mongo.bson.from.list() ,以获取下面的日期差的$min ,但是请继续获取

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

which means that my BSON group expression, although acceptable to mongo.bson.from.list() , is rejected by mongo.aggregation() . 这意味着,我的BSON组表达,尽管接受mongo.bson.from.list()是由拒绝mongo.aggregation()

I've tried using list() rather than c() , and cod rather than its ISODate definition, with various quoting variations. 我尝试使用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' )
   ))
 )

I am using mongo's latest stable release, version 3.2.4. 我正在使用mongo的最新稳定版本3.2.4。

Trial & error: the following works. 试错:以下工作。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM