Python-NoSQLデータベース

非構造化または半構造化として利用できるデータが増えるにつれ、NoSqlデータベースを介してデータを管理する必要性が高まります。Pythonは、リレーショナルデータベースとのやり取りと同様の方法でNoSQLデータベースとやり取りすることもできます。この章では、Pythonを使用してMongoDBをNoSQLデータベースとして操作します。MongoDBを初めて使用する場合は、こちらのチュートリアルで学ぶことができます。

MongoDBに接続するために、Pythonは次のようなライブラリを使用します。 pymongo。Anaconda環境から以下のコマンドを使用して、このライブラリをPython環境に追加できます。

conda install pymongo

このライブラリにより、Pythonはdbクライアントを使用してMOngoDBに接続できます。接続したら、さまざまな操作に使用するデータベース名を選択します。

データの挿入

MongoDBにデータを挿入するには、データベース環境で使用可能なinsert()メソッドを使用します。まず、以下に示すPythonコードを使用してデータベースに接続し、次に一連のキーと値のペアの形式でドキュメントの詳細を提供します。

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient()

# Connect to the test db 
db=client.test

# Use the employee collection
employee = db.employee
employee_details = {
    'Name': 'Raj Kumar',
    'Address': 'Sears Streer, NZ',
    'Age': '42'
}

# Use the insert method
result = employee.insert_one(employee_details)

# Query for the inserted document.
Queryresult = employee.find_one({'Age': '42'})
pprint(Queryresult)

上記のコードを実行すると、次のような結果になります。

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId('5adc5a9f84e7cd3940399f93')}

データの更新

既存のMongoDBデータの更新は、挿入に似ています。mongoDBにネイティブなupdate()メソッドを使用します。以下のコードでは、既存のレコードを新しいキーと値のペアに置き換えています。条件基準を使用して、更新するレコードを決定する方法に注意してください。

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient()

# Connect to db
db=client.test
employee = db.employee

# Use the condition to choose the record
# and use the update method
db.employee.update_one(
        {"Age":'42'},
        {
        "$set": {
            "Name":"Srinidhi",
            "Age":'35',
            "Address":"New Omsk, WC"
        }
        }
    )

Queryresult = employee.find_one({'Age':'35'})

pprint(Queryresult)

上記のコードを実行すると、次のような結果になります。

{u'Address': u'New Omsk, WC',
 u'Age': u'35',
 u'Name': u'Srinidhi',
 u'_id': ObjectId('5adc5a9f84e7cd3940399f93')}

データの削除

レコードの削除も、deleteメソッドを使用する場合は簡単です。ここでは、削除するレコードを選択するために使用される条件についても説明します。

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient()

# Connect to db
db=client.test
employee = db.employee

# Use the condition to choose the record
# and use the delete method
db.employee.delete_one({"Age":'35'})

Queryresult = employee.find_one({'Age':'35'})

pprint(Queryresult)

上記のコードを実行すると、次のような結果になります。

None

したがって、特定のレコードがデータベースに存在しなくなっていることがわかります。