我有一个用户集合,我想获取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语法编写了查询。