如何在 mongodb 日期上 php 查询正则表达式


How do I php query regex on a mongodb Date

我有一个用户集合,我想获取2015年注册的所有用户。

使用普通日期字符串,可以进行查询:

$query=[
    'timestamp'=> [
       '$regex' => "2015"
    ]
];

但是当我在MongDate时间戳上尝试此操作时,它不再起作用。

有什么想法吗?

存储在

MongoDB中的日期不是字符串,而是日期类型。您无法将正则表达式与它匹配,因为它不是字符串。相反,只需使用日期范围进行搜索(如果您希望日期字段更快,请为日期字段编制索引):

db.test.find({ "timestamp" : { "$gte" : ISODate("2015-01-01T00:00:00.000Z"), "$lt" : ISODate("2016-01-01T00:00:00.000Z") } })

我不熟悉PHP,所以我用mongo shell语法编写了查询。