MongoDB

MongoDB

pymongoはMongoDBへのインターフェイスを提供します。

pymongoのインストール

 pipを使ってインストールします。

python3 -m pip install pymongo

MongoDBとの接続

 MongoClientを作成してDBに接続します。

import pymongo
from pymongo import MongoClient
client = MongoClient()

上記関数、引数を指定しないMongoClient()は、デフォルトのホストとポートに接続します。hostとportを指定する場合は、以下のように引数に指定します。

client = MongoClient('localhost', 27017)

 URIの形式でも可能です。

client = MongoClient('mongodb://localhost:27017/')

データベースを取得する。

db = client.database_abc

以下のようにdict形式でアクセスすることもできます。

db = client['database_abc']

コレクションを取得します。

collection = db.collection_def

dict形式でアクセスする場合

collection = db['collection_def']

コレクションにドキュメントを追加する insert_one()

コレクションにドキュメントを追加します。

 insert_one()メソッドを使います。

post = {
    "author":"Mike",
    "text": "MongoDB client",
    "date": "2023-04-04"
   }
collection = db['collection_def']
id = collection.insert_one(post).insert_id

コレクションからドキュメントを取得する find_one()

クエリに一致したドキュメントを取得する。

 find_one()メソッドを使います。

collection.find_one({"author":"Mike"})
{'_id':ObjectId('...'),
 'author':'Mike',
  ...
 }

まとめてドキュメントを追加する insert_many()

バルクインサート操作 

まとめてドキュメントを追加します。各ドキュメントをリストに追加し、一つのコマンドでサーバーに送ります。

new_posts = [
 {"author":"Mike",
  "text": "bulk ins",
  "date": 2023-04-18"
 },
 {"author":"Jim",
  "text": "ins many",
  "date": 2023-04-18"
 }
 ]

result = collection.insert_many(new_posts)

ドキュメント数の取得

 コレクション内のすべてのドキュメント数

collection.count_documents({})

クエリに一致したドキュメントの数を返します。

collection.count_documents({'author':'Mike'})

-MongoDB
-