Jenssegers MongoDB"像查询"在ISODate上返回空白数组

时间:2015-02-05 05:00:48

标签: php mongodb laravel-4 jenssegers-mongodb

我有以下查询,但它返回一个空数组(我知道这个查询应该返回一个记录)

$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格式 "created_at" : ISODate("2015-02-03T16:29:26.965Z")

我因为ISODate格式而猜测它。我如何得到我需要的结果?

由于

1 个答案:

答案 0 :(得分:1)

请改用此代码:

$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个。