MongoDBのとPythonの対話

ドライブモジュール

  • 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))

おすすめ

転載: www.cnblogs.com/felixqiang/p/11221507.html
おすすめ