从日期pymongo聚合中减去秒

笨拙的

这是我的python代码:

date1=datetime.datetime(2016,2,3)
cursor = collection.aggregate([
 {"$match":{"EndTime":{"$gte":date1}}},
 {"$project": { "EndTime":"$EndTime","StartTime":{ "$subtract": [ "$EndTime", "$TimeSpent"*1000]},"TimeSpent":"$TimeSpent"}},
 {"$sort":{"StartTime":1}}
])

我所有的StartTime字段均为None。我应该如何获取StartTime字段作为python输出。

克列丹

您的管道应使用可用的算术运算符进行计算;你所谓的“倍增”的字符串文字,而不是使用的$multiply运营商,因此,为什么你得到一个空的结果,蒙戈不承认这部分"$TimeSpent"*1000{ "$subtract": [ "$EndTime", "$TimeSpent"*1000] }

更改管道以$multiply在表达式中使用运算符,而不是:

date1=datetime.datetime(2016,2,3)
cursor = collection.aggregate([
    { "$match": { "EndTime": { "$gte": date1 } } },
    {
        "$project": { 
            "EndTime": 1,           
            "TimeSpent": 1,
            "StartTime": { 
                "$subtract": [ 
                    "$EndTime", 
                    { "$multiply": ["$TimeSpent", 1000] } 
                ]
            }
        }
    },
    { "$sort": { "StartTime": 1 } }
])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章