这是我的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输出。
答案 0 :(得分:0)
您的管道应使用可用的arithmetic operators进行计算;你应该“乘以”一个字符串文字,而不是使用 $multiply
运算符,因此为什么你得到一个null结果,mongo
在"$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 } }
])