0

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

使用正常的日期字符串可以查询:

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

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

有任何想法吗?

4

1 回答 1

1

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

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

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

于 2015-02-03T19:19:49.650 回答