ドライブモジュール
- pymongoは Pythonのドライブモジュールで共通の操作ですMongoDBの
- ピップをダウンロードしてインストールするために利用できます
pip install pymongo
接続を作成します。
- MongoClientはMongoDBのクライアント・プロキシ・オブジェクトは、CRUD操作を実行するために使用することができますですが、また、接続プールを構築しました
from pymongo import MongoClient
client = MongoClient(host="localhost",port=27017)
client.admin.authenticate("admin","123456")
データが書かれています
- 二つの機能やデータinsert_many insert_oneはMongoDBのに書き込むことができます
client.school.student.insert_one({"name":"alex"})
client.school.student.insert_many({"name":"bob"},{"name":"cindy"})
データクエリ
- find_oneと二つの機能を見つけることがMmongDBからのデータに記載されています
student = client.school.student.find_one({"name":"alex"})
print(student)
students = client.school.student.find({})
for one in students:
print(one["_id"],one["name"])
- スキップ:データ分類のためのクエリを
- リミット:データページングクエリの
students = client.school.student.find({}).skip(0).limit(10)
- count_documents:レコードのクエリ総数
count = client.school.student.count_documents({})
- 個別のクエリは、フィールドと重複しません
students = client.school.student.distinct("name")
- 並べ替え:クエリ結果のソート
students = client.school.student.find().sort([("name",-1)])
データ変更
- 二つの機能をupdate_many update_oneし、データにMongoDBを変更することができます
client.school.student.update_one({"name":"alex"},{"$set":{"sex":"女"}})
client.school.student.update_many({},{"$set":{"grade":"七年级"}})
データ削除
- delete_oneとdelete_many二つの機能は、MongoDBのデータを削除することができます
client.school.student.delete_one({"name":"alex"})
client.school.student.delete_many({})
ファイルストレージ
接続GridFS
- GridFS MongoDBは、主に以上16M文書を格納するために、文書のストレージソリューションであります
from gridfs import GridFS
db = client.school
gfs = GridFS(db,collection="book")
ファイルを保存します
- 機能を入れてGridFSにファイルを保存することができます
file = open("D:/Python编程:从入门到实践.pdf","rb")
args = {"type":"PDF","keyword":"Python"}
gfs.put(file,file="Python编程:从入门到实践.PDF",**args)
file.close()
ファイルを探します
- find_oneと見つける機能は、ファイル保存GridFSを見つけることができます
book = gfs.find_one({"filename":"Python编程:从入门到实践.PDF"})
print(book.keywode)
books = gfs.find({"type":"PDF"})
for one in books:
print(one.filename)
ファイルが格納されているかどうかを判断するには
- ファイルがGridFS格納されているか否かを判断することができる存在
rs = gfs.exists({"filename":"Python编程:从入门到实践.PDF"})
print(rs)
ファイルを読みます
- get関数はGfridFSからファイルを読み取ることができ、そして主キーのみで読み取ることができます
from bson.objectid import ObjectId
book = gfs.find_one({"filename":"Python编程:从入门到实践.PDF"})
id = book._id
document = gfs.get(ObjectId(id))
file = open("D:/Python从入门到实践.PDF","wb")
file.write(document.read())
file.close()
ファイルを削除します
- delect機能は同じ主キーのみで(ファイルを見つけるために、主キー)を削除することができ、GridFSからファイルを削除することができます
from bson.objectid import ObjectId
book = gfs.find_one({"filename":"Python编程:从入门到实践.PDF"})
id = book._id
gfs.delete(ObjectId(id))