【问题标题】:whereBetween doesn't work in laravel mongodbwhereBetween 在 laravel mongodb 中不起作用
【发布时间】:2022-07-06 21:46:05
【问题描述】:

您好,我是 MongoDB laravel 新手,出现以下错误:

这是我要在 Mongo 中查询的对象。

MongoDB Compass

我想获取大于或等于 2022/7/5 且小于或等于 2022/7/6 的时间戳,根据我在 Laravel 中使用 Jenssegers/laravel-mongodb 的逻辑,会有这样的结果:

$tracks =  TrackFishing::where('boat_id', '3')
    ->whereBetween(
         'tracking.timestamp', array(
             Carbon::createFromDate(2022, 7, 5),
             Carbon::createFromDate(2022, 7, 6)
         ))
    ->first();

我想获取时间戳的位置 0,但这让我感到空虚,非常感谢您的帮助

【问题讨论】:

  • 你检查过(string)Carbon::createFromDate(2022, 7, 5) 会返回什么吗?它返回(现在)"2022-07-05 14:43:30",所以你可以看到它取决于你什么时候打电话。

标签: laravel mongodb


【解决方案1】:

你需要指定小时、分钟和秒

$tracks =  TrackFishing::where('boat_id', '3')
    ->whereBetween(
         'tracking.timestamp', array(
             Carbon::createFromDate(2022, 7, 5)->startOfDay(),
             Carbon::createFromDate(2022, 7, 6)->endOfDay()
         ))
    ->first();

【讨论】:

    猜你喜欢
    • 2021-12-19
    • 2018-09-09
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 2021-03-17
    • 2016-11-27
    • 2017-05-21
    • 2016-04-20
    相关资源
    最近更新 更多