MongoDB ObjectIds を使用した作成日によるドキュメントの検索
MongoDB ObjectIds は、12 バイト表現内にドキュメント作成のタイムスタンプを保持します。作成日に基づいてドキュメントをクエリするのに役立つように、この機能を利用できます。
次のシナリオを考えてみましょう。1980 年 5 月 25 日の午前 0 時以降に作成されたすべてのドキュメントを検索したいとします。これを実現するには、次のコマンドを使用します。次のアプローチ:
時間埋め込み ObjectId を生成するための JavaScript コード:
<code class="javascript">/* Function creates an ObjectId embedded with a given datetime (Date object or string) */ function objectIdWithTimestamp(timestamp) { timestamp = typeof timestamp == 'string' ? new Date(timestamp) : timestamp; var hexSeconds = Math.floor(timestamp / 1000).toString(16); return ObjectId(hexSeconds + "0000000000000000"); }</code>
クエリの例:
<code class="javascript">/* Find documents created after midnight on May 25th, 1980 using the generated ObjectId */ db.mycollection.find({ _id: { $gt: objectIdWithTimestamp('1980/05/25') } });</code>
このクエリは、指定されたタイムスタンプよりも大きい時間を表す ObjectId を持つすべてのドキュメントを返します。これにより、作成日に基づいてドキュメントを効率的に分離できます。
以上がMongoDB ObjectId を使用して、作成日に基づいてドキュメントを検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。