php - MongoDB 在 $gte 中使用 UTCDateTime 不起作用
问题描述
我正在编写一个查询来搜索在特定日期创建的用户,例如
$date = '2018-05-02 15:46:41.000Z';
User::raw(function ($col) use($date) {
return $col->aggregate([
['$match' =>
'created_at' => ['$gte' => new \MongoDB\BSON\UTCDateTime(strtotime($date))]
]
]);
});
给定一个样本数据,例如
{
"_id" : ObjectId("5ae9dd61ef7a5754f159c656"),
"name" : "Effie Larkin",
"created_at" : ISODate("2018-05-02 15:46:41.000Z"),
}...
预期结果应该是
{
"users" : [
"_id" : {"$oid": "5ae9dd61ef7a5754f159c656"},
"name" "Effie Larkin",
"created_at" : "2018-05-02 15:46:41"
]
}...
但我得到一个空的 json 数组[]
。我认为问题出在 UTCDateTime 函数中,但我不知道如何将 dateTime 传递给它。我想通过一个时间间隔,比如 1 周前或昨天等...如果有人可以帮助我,将不胜感激,谢谢
更新,下面的例子修复了它
$date = '2018-05-02';
User::raw(function ($col) use($date) {
return $col->aggregate([
['$match' =>
'created_at' => ['$gte' => new \MongoDB\BSON\UTCDateTime(strtotime($date)*1000)]
]
]);
});
解决方案
推荐阅读
- java - Java执行过滤器和分组并使用2个列表执行媒体
- c++ - 打开 Gnome 终端选项卡,在 Ubuntu 18.04 LTS 上使用 C++ 运行命令
- javascript - 如何使我的 html 网站中的图片可点击?
- python - 检查每个偶数索引是否包含偶数并且每个奇数索引是否包含给定列表的奇数的程序存在问题
- symbolicc++ - 尝试将此数据类型包含在另一个头文件中时出现冲突类型错误我不确定为什么
- php - 与 if 语句相比,switch 语句如何加载?
- r - 在 Rstudio 项目中重命名无标题
- python - pandas read_parquet 错误地导入日期字段
- python - 从 excel 文件中,Python 中是否有办法获取在两列和一系列日期之间具有最高总和的 MAC AP 地址?
- html - 在 Google Chrome 中另存为 PDF 时不会出现重复线性渐变