mongoDb で 2:00 より大きく 8:00 より短い時間を取得したいと考えています。ただし、私のデータは次のようになります。
{"時間": "4:35"}
コロンがあると、"db.collection.find( { time: { $gt: 2, $lt: 8 } } )" のようなクエリを作成できなくなります。これをクエリする方法はありますか? (おそらく、内部データを変更せずに 4:35 を 435 に解析します)
2 から 8 の間の時間を検索したいだけなら、おそらくこれを試すことができます。
db.collection.find( { time: { $gt: "2:00", $lt: "8:00" } } )
これは私がこれをテストするために行ったことです。コレクションにいくつかのデータを挿入しました。リストは次のとおりです。
db.time.find({},{"_id":0})
{ "mytime" : "4:35" }
{ "mytime" : "1:35" }
{ "mytime" : "6:35" }
{ "mytime" : "8:35" }
{ "mytime" : "10:35" }
{ "mytime" : "10:10" }db.time.find( { mytime: { $gt: "2:00", $lt: "8:00" } }, {"_id":0} )
{ "mytime" : "4:35" }
{ "mytime": "6:35" }
時間を文字列として保存するのは悪い考えです。残念ながら、MongoDB には専用の時間のみのデータ型はありませんが、文字列を使用するほど悪くない代替手段が 2 つあります。