3

時系列データをmongodbデータベースに保存しています。ここで、フィールドの1つはISODateオブジェクトです。ISODateオブジェクトの値が分と秒でゼロであるすべてのアイテムを取得しようとしています。つまり、ラウンドアワーにタイムスタンプを持つすべてのオブジェクトです。

それを行う方法はありますか、または時間、分、秒の個別のフィールドを作成し、たとえばfind({"minute":0、 "second":0})を実行してそれらを直接クエリする必要がありますか?

ありがとう!

4

3 に答える 3

6

@Deveshが言うようにこれを行うことができます。または、より適切に適合する場合は、集約フレームワークを使用できます。

db.col.aggregate([
   {$project: {_id:1, date: {mins: {$minute: '$dateField'}, secs: {$second: '$dateField'}}}},
   {$match: {mins: 0, secs: 0}}
]);

そのようです。

于 2013-03-26T14:03:20.103 に答える
2

演算子を日付集計演算子と$expr一緒に使用し、検索クエリで次のように使用します。$minute$second

db.collection.find({
    '$expr': {
        '$and': [
            { '$eq': [ { '$minute': '$dateField' }, 0 ] },
            { '$eq': [ { '$second': '$dateField' }, 0 ] },
        ]
    }
})
于 2018-08-10T15:20:13.903 に答える
1

分と秒のない日時のみを含む列をコレクションにもう1つ追加できますか。これにより、クエリがより高速で使いやすくなります。分と秒の部分がない日時列になります

于 2013-03-26T13:51:37.150 に答える