Python操作データベースのMongodb
Python操作データベースのMongodb
一、Pymongoを取り付ける
PythonのMongoDBモジュールPyMongoをインストールする
1、ソースコードのインストール:
ダウンロード先:
https://pypi.python.org/packages/69/8a/2384c55f4bd494eeb6104a9b35c36714ba1178dcd08ee5a73b92eed3d8c1/pymongo-3.6.0.tar.gz#md5=2f64fa7691c77535b72050704cc12afb
インストールパッケージを解凍し、解凍ディレクトリに入ってインストールコマンドを実行します.
2、pip取付
または
二、Pymongoを使用してMongodbを操作する
1、モジュールのインポート
2、MongodbClientの接続を確立する
または
3、データベースを得る
または
4、集合を得る
または
検索
find_を使用してデータをクエリーone():
すべてのデータをクエリーし、find()を使用します.
booksが参照するオブジェクトにはfind()メソッドがあり、コレクション内のすべてのドキュメントを含む反復可能なオブジェクトを返します.
条件クエリー:
クエリー結果のソート:
これは「title」の値の昇順に配列され、sort()の2番目のパラメータに注意して、昇順配列を意味します.降順であれば、パラメータをPymongoに変更する必要がある.DESCEDINGは、複数のソートキーを指定することもできます.
統計ドキュメント数
現在2つのデータがあります
mongodbの各ドキュメントは、本質的に「キー値ペア」のクラス辞書構造です.この仕組みは、Pythonで読むと、辞書の中のいろいろな方法で操作できます.これと似たようなjsonというものもありますが、このチュートリアル第2四半期に進級した陸章モジュールの「標準ライブラリ(8)」を読むことができます.ただし、Pythonで読むと、jsonモジュールのjson.dumps()メソッドでドキュメントを直接操作することはできません.1つの解決策は、ドキュメントの'_id'キー値を削除し(例えば、del doc['_id'])、json.dumps()を使用することです.できます.読者もjsonを使っていますutilモジュールは、「Tools for using Python’s json module with BSON documents」ですので、お読みくださいhttp://api.mongodb.org/Python/current/api/bson/json_util.htmlに表示されます.
データの挿入
1つのデータを挿入:
一括挿入データ:
更新
既存のデータの更新は、データベースでよく使用される操作です.たとえば、Hertzという名前のドキュメントを更新するには、次のようにします.
更新時に$setモディファイヤが使用され、キーが存在しない場合に作成されるキー値を指定できます.
モディファイヤについては、これだけでなく、他にもありますね.
モディファイヤ
説明
$set
キーの値を指定します.存在しない場合は作成
$unset
キーを完全に削除
$inc
既存のキーの値を増やし、存在しない場合に作成します(整数、長整数、二重精度浮動小数点数の増加にのみ使用できます).
$push
[配列](Array)モディファイヤでは、値が配列でしか操作できません.存在keyは値の末尾に要素を追加し、存在しない場合は配列を作成します.
削除
削除にはremove()メソッドを使用します.
これはそのドキュメントをすべて削除します.もちろん、mongodbの文法規則に基づいて、条件を書いて、条件に従って削除することもできます.
索引
インデックスの目的は、クエリーの速度を速めることです.もちろん、特定のプロジェクト開発では、状況に応じてインデックスを確立するかどうかを決定します.インデックスを作成するのも代価があるからです.
一、Pymongoを取り付ける
PythonのMongoDBモジュールPyMongoをインストールする
1、ソースコードのインストール:
ダウンロード先:
https://pypi.python.org/packages/69/8a/2384c55f4bd494eeb6104a9b35c36714ba1178dcd08ee5a73b92eed3d8c1/pymongo-3.6.0.tar.gz#md5=2f64fa7691c77535b72050704cc12afb
インストールパッケージを解凍し、解凍ディレクトリに入ってインストールコマンドを実行します.
python setup.py install
2、pip取付
pip install pymongo
または
easy_install pymongo
二、Pymongoを使用してMongodbを操作する
1、モジュールのインポート
>>> Import pymongo
2、MongodbClientの接続を確立する
>>> client = pymongo.MongoClient("localhost",27017)
または
>>> client = pymongo.MongoClient(“mongodb://localhost:27017/”)
3、データベースを得る
db=client.mydb
または
db=client[“mydb”]
4、集合を得る
books=db.my_collection
または
books=db[“my_collection”]
検索
find_を使用してデータをクエリーone():
>>> books.find_one()
{u'lang': u'Python', u'_id': ObjectId('554f0e3cf579bc0767db9edf'), u'author': u'qiwsir', u'title': u'from beginner to master'}
すべてのデータをクエリーし、find()を使用します.
>>> for i in books.find():
... print i
...
{u'lang': u'Python', u'_id': ObjectId('554f0e3cf579bc0767db9edf'), u'author': u'qiwsir', u'title': u'from beginner to master'}
{u'lang': u'english', u'title': u'physics', u'_id': ObjectId('554f28f465db941152e6df8b'), u'author': u'Newton'}
booksが参照するオブジェクトにはfind()メソッドがあり、コレクション内のすべてのドキュメントを含む反復可能なオブジェクトを返します.
条件クエリー:
>>> books.find_one(“lang”:”Python”)
{u'lang': u'Python', u'_id': ObjectId('554f0e3cf579bc0767db9edf'), u'author': u'qiwsir', u'title': u'from beginner to master'}
クエリー結果のソート:
>>> for i in books.find().sort("title", pymongo.ASCENDING):
... print i
...
{u'lang': u'python', u'_id': ObjectId('554f0e3cf579bc0767db9edf'), u'author': u'qiwsir', u'title': u'from beginner to master'}
{u'lang': u'english', u'title': u'physics', u'_id': ObjectId('554f28f465db941152e6df8b'), u'author': u'Newton'}
これは「title」の値の昇順に配列され、sort()の2番目のパラメータに注意して、昇順配列を意味します.降順であれば、パラメータをPymongoに変更する必要がある.DESCEDINGは、複数のソートキーを指定することもできます.
統計ドキュメント数
>>> books.find().count()
2
現在2つのデータがあります
mongodbの各ドキュメントは、本質的に「キー値ペア」のクラス辞書構造です.この仕組みは、Pythonで読むと、辞書の中のいろいろな方法で操作できます.これと似たようなjsonというものもありますが、このチュートリアル第2四半期に進級した陸章モジュールの「標準ライブラリ(8)」を読むことができます.ただし、Pythonで読むと、jsonモジュールのjson.dumps()メソッドでドキュメントを直接操作することはできません.1つの解決策は、ドキュメントの'_id'キー値を削除し(例えば、del doc['_id'])、json.dumps()を使用することです.できます.読者もjsonを使っていますutilモジュールは、「Tools for using Python’s json module with BSON documents」ですので、お読みくださいhttp://api.mongodb.org/Python/current/api/bson/json_util.htmlに表示されます.
データの挿入
1つのデータを挿入:
>>> b2 = {"title":"physics", "author":"Newton", "lang":"english"}
>>> books.insert(b2)
ObjectId('554f28f465db941152e6df8b')
一括挿入データ:
>>> n1 = {"title":"java", "name":"Bush"}
>>> n2 = {"title":"fortran", "name":"John Warner Backus"}
>>> n3 = {"title":"lisp", "name":"John McCarthy"}
>>> n = [n1, n2, n3]
>>> n
[{'name': 'Bush', 'title': 'java'}, {'name': 'John Warner Backus', 'title': 'fortran'}, {'name': 'John McCarthy', 'title': 'lisp'}]
>>> books.insert(n)
[ObjectId('554f30be65db941152e6df8d'), ObjectId('554f30be65db941152e6df8e'), ObjectId('554f30be65db941152e6df8f')]
更新
既存のデータの更新は、データベースでよく使用される操作です.たとえば、Hertzという名前のドキュメントを更新するには、次のようにします.
>>> books.update({"name":"Hertz"}, {"$set": {"title":"new physics", "author":"Hertz"}})
{u'updatedExisting': True, u'connectionId': 4, u'ok': 1.0, u'err': None, u'n': 1}
>>> books.find_one({"author":"Hertz"})
{u'title': u'new physics', u'_id': ObjectId('554f2b4565db941152e6df8c'), u'name': u'Hertz', u'author': u'Hertz'}
更新時に$setモディファイヤが使用され、キーが存在しない場合に作成されるキー値を指定できます.
モディファイヤについては、これだけでなく、他にもありますね.
モディファイヤ
説明
$set
キーの値を指定します.存在しない場合は作成
$unset
キーを完全に削除
$inc
既存のキーの値を増やし、存在しない場合に作成します(整数、長整数、二重精度浮動小数点数の増加にのみ使用できます).
$push
[配列](Array)モディファイヤでは、値が配列でしか操作できません.存在keyは値の末尾に要素を追加し、存在しない場合は配列を作成します.
削除
削除にはremove()メソッドを使用します.
>>> books.remove({"name":"Bush"})
{u'connectionId': 4, u'ok': 1.0, u'err': None, u'n': 1}
>>> books.find_one({"name":"Bush"})
>>>
これはそのドキュメントをすべて削除します.もちろん、mongodbの文法規則に基づいて、条件を書いて、条件に従って削除することもできます.
索引
インデックスの目的は、クエリーの速度を速めることです.もちろん、特定のプロジェクト開発では、状況に応じてインデックスを確立するかどうかを決定します.インデックスを作成するのも代価があるからです.
>>> books.create_index([("title", pymongo.DESCENDING),])
u'title_-1'