从日期pymongo聚合中减去秒数

2024-09-30 02:26:52 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的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字段作为python输出。在


Tags: 代码projectdatetimematch时间sortcursorcollection
1条回答
网友
1楼 · 发布于 2024-09-30 02:26:52

您的管道应该使用可用的arithmetic operators来进行计算;您应该“乘以”一个字符串文本,而不是使用^{}运算符,因此得到空结果的原因是mongo 无法识别{ "$subtract": [ "$EndTime", "$TimeSpent"*1000] }中的此部件"$TimeSpent"*1000。在

更改管道以在表达式中使用^{}运算符,然后:

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 } }
])

相关问题 更多 >

    热门问题