私はこのように格納された位置データと設定MongoDBのデータストアを有するの時間範囲の間に照会:私はdate range例と同様のクエリを実行できるようにしたいのMongoDB - 時間
{
"_id" : ObjectId("51d3e161ce87bb000792dc8d"),
"datetime_recorded" : ISODate("2013-07-03T05:35:13Z"),
"loc" : {
"coordinates" : [
0.297716,
18.050614
],
"type" : "Point"
},
"vid" : "11111-22222-33333-44444"
}
しかし代わりに時間範囲にあります。即ち、12AMから4PMの間で記録された全てのポイントを検索する(1200と1600の24時間の時間でも行うことができる)。
ポイントを
:
"datetime_recorded" : ISODate("2013-05-01T12:35:13Z"),
"datetime_recorded" : ISODate("2013-06-20T05:35:13Z"),
"datetime_recorded" : ISODate("2013-01-17T07:35:13Z"),
"datetime_recorded" : ISODate("2013-04-03T15:35:13Z"),
クエリ
db.points.find({'datetime_recorded': {
$gte: Date(1200 hours),
$lt: Date(1600 hours)}
});
は、最初と最後のポイントのみを返します。
これは可能ですか?それとも毎日それをしなくてはなりませんか?
Mongodbには通常のクエリの日付/時刻演算子がないため、スキーマを変更して別のフィールドとして時間を含めることをお勧めします。それがなければ、索引を効率的に使用して結果を絞り込むことはできません。 – WiredPrairie