日付による MongoDB ObjectIds のクエリ
質問:
からドキュメントを取得することは可能ですか? ObjectId 内に埋め込まれた日付に基づいた MongoDB コレクション?
答え:
はい、埋め込まれたタイムスタンプを使用して、日付によって MongoDB ObjectId をクエリすることができます。
JavaScript では、ObjectId() 関数を使用して、特定のタイムスタンプを持つ ObjectId を構築できます。たとえば、次のコードは、1980 年 5 月 25 日の午前 0 時を表すタイムスタンプが埋め込まれた ObjectId を作成します。
<code class="javascript">var timestamp = new Date('1980/05/25'); var hexSeconds = Math.floor(timestamp/1000).toString(16); var constructedObjectId = ObjectId(hexSeconds + "0000000000000000");</code>
このタイムスタンプ以降に作成されたすべてのドキュメントをクエリするには、$gt (大なり) 演算子を使用できます。 :
<code class="javascript">db.mycollection.find({ _id: { $gt: constructedObjectId } });</code>
このクエリは、ObjectId のタイムスタンプが 1980 年 5 月 25 日午前 0 時より大きいすべてのドキュメントを返し、作成日に基づいてドキュメントを効果的にフィルタリングします。
以上が## 埋め込まれた日付に基づいて MongoDB ObjectId をクエリできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。