mongodb - 查找多个日期时间对象之间的平均时间 mongodb
问题描述
我想找到客户在特定位置访问的平均时间。我的数据结构如下:
{
"_id": ObjectId("5aea9f9a83b391f80e00a1b1"),
"Client": "ABC",
"Timestamp": "2018-05-03 10:47:42"
},
{
"_id": ObjectId("5aea9f9a83b391f80e00c1a1"),
"Client": "ABC",
"Timestamp": "2018-05-03 11:05:04"
} ,
{
"_id": ObjectId("5aea9f9a83b391f80e00a1e1"),
"Client": "ABC",
"Timestamp": "2018-05-03 13:05:04"
} ,
{
"_id": ObjectId("5aea9f9a83b391f80eaea1e1"),
"Client": "DEF",
"Timestamp": "2018-05-03 11:20:44"
}
到目前为止,我刚刚在 codeigniter 中尝试过代码
$optn = array(
array('$group' => array( '_id' => '$Client', 'date1' => array('$min' => '$Timestamp'), 'date2' => array('$max' => '$Timestamp'), 'avg_time' => array('$avg' => array('$subtract' => array('$date2', '$date1')))))
);
$repeatdata = $this->mongo_db->aggregate("logsdata", $optn);
echo '<pre>'; print_r($repeatdata);
它给了我结果:
Array
(
[waitedMS] => 0
[result] => Array
(
[0] => Array
(
[_id] => ABC
[date1] => 2018-05-03 10:47:42
[date2] => 2018-05-03 13:05:04
[avg_time] =>
)
[1] => Array
(
[_id] => DEF
[date1] => 2018-05-03 11:20:44
[date2] => 2018-05-03 11:20:44
[avg_time] =>
)
)
)
解决方案
推荐阅读
- magento-2.3 - magento 2结帐页面条款和条件不起作用
- android - 如何防止CameraX在转动时转动
- sql-server - 带有 JOIN 和 MAX(date) 的 T-SQL 多个子查询
- python - 如何在 tkinter 计算器 GUI 中添加“等于”符号?
- javascript - 将正则表达式保存到 Redux 商店?
- python - 在一组无向图中查找最大节点数
- oauth-2.0 - 通过 OAuth 2.0 Azure AD 访问 Azure DevOps API
- javascript - 如何跨应用更新保存用户数据?
- shell - 控制du ordering
- c# - 如何绕过 RestSharp“需要一个强名称的程序集”