PythonでMongoDBに日付オブジェクトを挿入する方法をわかりやすく解説
PythonからMongoDBデータベースに接続して、ドキュメントの挿入・更新・削除などを行うには、pymongo ライブラリを使用します。pymongoはPythonの datetime オブジェクトを標準でサポートしているため、日付をMongoDBに保存する際に特別な変換処理を行う必要はありません。
基本的な使い方
以下は、pymongoを使ってMongoDBに現在の日時を持つドキュメントを挿入する例です。
import datetime
from pymongo import MongoClient
# デフォルトのホストとポートでMongoDBに接続
client = MongoClient()
db = client.test_database
# objectsコレクションに辞書型のドキュメントを挿入
result = db.objects.insert_one({"last_modified": datetime.datetime.utcnow()})
print("オブジェクトを挿入しました!")
実行結果
このコードを実行すると、次のような出力が得られます。
オブジェクトを挿入しました!
注意点:utcnow() と now() の違い
日時を挿入する際は、必ず datetime.datetime.utcnow() を使用しましょう。このメソッドはUTC(協定世界時)の現在時刻を返します。一方、datetime.datetime.now() はサーバーのローカルタイムゾーンに依存した時刻を返すため、環境によって保存される時刻がずれる原因になります。
MongoDB内部では日時がUTCで管理されるため、アプリケーション全体で一貫性を保つためにも、utcnow() を使うのがベストプラクティスとされています。表示の際にローカル時間へ変換すれば、ユーザーには正しい現地時刻を見せることができます。
-
【Python入門】strptimeを使って日付文字列をdateオブジェクトに変換する方法
Pythonでは、datetimeモジュールのstrptime関数を使うことで、文字列形式の日付データを簡単にdatetimeオブジェクトへ変換できます。この関数には、変換したい日付の文字列と、その日付がどのような書式で記述されているかを示すフォーマット指定子の2つの引数を渡します。基本的な使い方(サンプルコード)以下の例では、「2017年12月29日」という日付が「29122017」という文字列として表現されている場合に、それを日付オブジェクトへ変換しています。import datetime date_str = 29122017 # 日付文字列(2017年12月29日) format
-
Pythonで文字列から日付を抽出・解析する方法
文字列から日付を抽出するには、まずその文字列内で日付がどのような形式(フォーマット)で表現されているかを把握しておく必要があります。基本的なアプローチとしては、正規表現(reモジュール)で日付部分を取り出し、datetime.datetime.strptime() で解析(パース)するという流れになります。例えば、文字列中に「YYYY-MM-DD」形式の日付が含まれている場合、以下のコードで抽出と解析ができます。コード例import re import datetime s = I have a meeting on 2018-12-10 in New York match = re.sea