objectid のタイムスタンプに基づいて mongo コレクションで過去 24 時間に生成された objectid を取得する方法はありますか? mongodb で objectid を生成するアルゴリズムは何ですか?
質問する
247 次
1 に答える
1
objectidのタイムスタンプに基づいてmongoコレクションで過去24時間に生成されたobjectidを取得する方法はありますか?
次のような JavaScript コードを呼び出すことができます。
date = new Date()
date.setDate(date.getDate() - 1)
yesterday = Math.floor(date.getTime()/1000).toString(16)
db.coll.find({_id : {$gt : new ObjectId(yesterday + "0000000000000000")}} , {_id:1})
1 番目と 2 番目のステートメントは単純明快で、昨日の日付です。
3 行目は、昨日の 4 バイトの 16 進文字列を作成します。ObjectId の左端の 4 バイトです。
次に、ObjectId の右端の 8 バイトを気にしないので、0 で埋めます。これらは、MAC アドレス (3)、pid (2)、および実行中のカウンター (3) です。
あとは、コレクション (例) にクエリを実行coll
し、_id の値を返すだけです。
mongodbでobjectidを生成するアルゴリズムは何ですか
于 2013-08-05T21:43:13.180 に答える