2

日付と時刻を別々のフィールドに保存しているmongoデータベースがあります(この設定を変更することはできません)。グーグルで調べてみると、次のように、フィールドを 2 つの部分 (1 つは日付用、もう 1 つは時刻用) に分割して日付と時刻を照会している例を見つけました。

{"dateField": {"d": "06/18/2012" "t": "12:00:00 AM"}}
{"timeField": {"d": "06/18/2012" "t": "12:07:10 PM"}}

私は人々が日付部分をクエリするのを見てきました(そして自分自身でできました):

db.collection.find({"dateField.d": {"$gte": "06/18/2012"}})

私の問題は、時間をかけて同じことを試しても正確な結果が得られないことです:

db.collection.find({"timeField.t": {"$gte": "12:00:00 PM"}})

クエリを実行するために時間データをフォーマットする特定の方法はありますか? または、(日付に依存せずに) 時間だけをクエリできるように、時間データを保存するためのより良い方法はありますか?

4

1 に答える 1

2

データを実際の日付形式または数値として保存する必要があります。これらの検索を行っているとき、比較は辞書編集順序を使用していますが、これはあなたが望むものではありません。文字列を使用したい場合は、それが機能するISO 形式のいずれかを使用する必要があります。

于 2012-06-18T16:30:59.030 に答える