我有以下查询,但它返回一个空数组(我知道这个查询应该返回一条记录这一事实)
$created_at = date("Y-m");
$content = ContentModel::where('userId', $id->_id)
->where('created_at', 'like', "%{$created_at}%")
->orderBy('fav', 'DESC')
->get();
如果我删除 ->where('created_at', 'like', "%{$created_at}%")
它会返回一切正常,但我想要今年和本月的内容但是当我输入时查询不起作用。
数据库中的日期为ISODate格式
“创建时间”:ISODate("2015-02-03T16:29:26.965Z")
我猜这是因为 ISODate 格式。我如何获得我需要的结果?
谢谢
最佳答案
改用这段代码:
$created_at = new DateTime(date('F jS Y h:i:s A', strtotime('first day of ' . date('F Y'))));
$content = ContentModel::where('userId', $id->_id)
->where('created_at', '>', $created_at)
->orderBy('fav', 'DESC')
->get();
在此代码中,$created_at
变量表示当前月份的 1 号。
关于php - Jenssegers MongoDB "like query"在 ISODate 上返回空白数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28336538/