Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个用户集合,我想获取所有在 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 语法编写了查询。