如何从 Perl 和 mongoDB 中的 ISODate() 中减去分钟数?
How to subtract minutes from ISODate() in perl and mongoDB?
实际上,我想从我的执行时间字段中减去分钟数(减去 5 分钟)...
这是我的 mongodb collection :
{
"_id" : ObjectId("5c4f11fae2fb4adc98f323ad"),
"datetime" : ISODate("2019-01-28T14:30:18.423Z"),
"queuename" : "indotama_advice",
"payload" : "xxxxxxx",
"executiontime" : ISODate("2019-01-28T14:31:18.423Z")
}
这是我的代码:
my $collection = $db->get_collection('schedulequeue');
$person = $collection->find_one({"queuename" => "indotama_advice"},{"executiontime"=>1,"_id"=>0});
my $new_data = $collection->aggregate([
{'$subtract' => ["executiontime", 5 * 60 * 1000]}
]);
但我收到错误消息 unrecognized pipeline stage name : $subtract
,谁能告诉我在 perl 中使用 $subtract 的正确方法??
正如错误明确指出的那样,$subtract
不是聚合管道阶段。使用$project
转换查询结果:
$collection->aggregate(
[
{
'$project' =>
{
'alteredExecutionTime' =>
{
'$subtract' => ['$executiontime', 5 * 60 * 1000]
}
}
}
]
);
实际上,我想从我的执行时间字段中减去分钟数(减去 5 分钟)... 这是我的 mongodb collection :
{
"_id" : ObjectId("5c4f11fae2fb4adc98f323ad"),
"datetime" : ISODate("2019-01-28T14:30:18.423Z"),
"queuename" : "indotama_advice",
"payload" : "xxxxxxx",
"executiontime" : ISODate("2019-01-28T14:31:18.423Z")
}
这是我的代码:
my $collection = $db->get_collection('schedulequeue');
$person = $collection->find_one({"queuename" => "indotama_advice"},{"executiontime"=>1,"_id"=>0});
my $new_data = $collection->aggregate([
{'$subtract' => ["executiontime", 5 * 60 * 1000]}
]);
但我收到错误消息 unrecognized pipeline stage name : $subtract
,谁能告诉我在 perl 中使用 $subtract 的正确方法??
正如错误明确指出的那样,$subtract
不是聚合管道阶段。使用$project
转换查询结果:
$collection->aggregate(
[
{
'$project' =>
{
'alteredExecutionTime' =>
{
'$subtract' => ['$executiontime', 5 * 60 * 1000]
}
}
}
]
);