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