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 シェル構文でクエリを書きました。

于 2015-02-03T19:19:49.650 に答える