Python-data-science-python-nosql-databases

提供:Dev Guides
移動先:案内検索

Python-NoSQLデータベース

より多くのデータが非構造化または半構造化として利用可能になると、NoSqlデータベースを介してそれらを管理する必要性が高まります。 Pythonは、リレーショナルデータベースと対話するのと同様の方法でNoSQLデータベースと対話することもできます。 この章では、Pythonを使用して、NoSQLデータベースとしてMongoDBと対話します。 MongoDBを初めて使用する場合は、チュートリアルhttps://www.finddevguides.com/mongodb/index [こちら]で学習できます。

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

conda install pymongo

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

データの挿入

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

# 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')}

データを削除する

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

# 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

そのため、特定のレコードがデータベースにもう存在しないことがわかります。