日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

MongoDB之python简单交互(三)

發布時間:2025/7/14 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB之python简单交互(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python連接mongodb有多種orm,主流的有pymongo和mongoengine。

pymongo

安裝相關模塊

pip install pymongo

pymongo操作

  • 主要對象
MongoClient對象:用于與MongoDB服務器建立連接 DataBase對象:對應著MongoDB中的數據庫 Collection對象:對應著MongoDB中的集合 Cursor對象:查詢方法find()返回的對象,用于進行多行數據的遍歷
  • 主要方法
insert_one:加入一條文檔對象 insert_many:加入多條文檔對象 find_one:查找一條文檔對象 find:查找多條文檔對象 update_one:更新一條文檔對象 update_many:更新多條文檔對象 delete_one:刪除一條文檔對象 delete_many:刪除多條文檔對象
  • 交互實例
# test.py from pymongo import * def get_col():"""獲取一個集合對象"""try:# 連接mongodb,connect=False參數加上client = MongoClient(host='192.168.1.21',port=27017, username="admin", password="123", connect=False)# client = MongoClient("mongodb://admin:123@192.168.1.21") # 另一種寫法col = client.tms.eegpic # 獲取集合對象except Exception as e:raise AttributeError("連接出錯:{err}".format(err=e))else:return colif __name__ == "__main__":col = get_col()res = col.insert_one({'name':'cwp','age':24, 'sex':1}) # 插入一條數據col.insert_many([{'name': 'cwp', 'age': 24, 'sex': 1},{'name': 'hhh', 'age': 24, 'sex': 1}]) # 多條per = col.find_one() # 查詢一條per = col.find() # 查詢所有col.update_many({'sex': 1}, {'$set': {'name': 'haha'}}) # 更新一條col.delete_one({'sex': 1}) # 刪除一條

flask_pymongo操作mongodb

flask_pymongo是方便pymongo集成到flask框架中,用法和pymongo幾乎一樣。

  • 安裝orm
pip install flask_pymongo
  • 初始化
# extensions from flask_pymongo import PyMongomongo = PyMongo()# __init__.py app = Flask(__name__) mongo.init_app(app=app)# setting.py MONGO_URL = 'mongodb://username:passwd@localhost:27017/db' # 設置連接參數# 得到的mongo對象相當于上例的client對象,剩下的用法與pymongo幾乎一樣

flask_mongoengine操作mongodb

flask_mongoengine是mongoengine在flask框架的集成,mongoengine可以按照類似關系型數據庫來定義數據的結構,使得操作風格和關系型數據庫相似,可以使得代碼更好的維持MVC結構。

  • 安裝
pip install flask_mongoengine
  • 初始化配置
# extensions.py from flask_mongoengine import MongoEnginedb = MongoEngine()# setting.py MONGODB_SETTINGS = {'db': 'project1','host': '192.168.1.35','port': 12345,'username':'webapp','password':'pwd123' } MONGODB_CONNECT = False # 在第一次訪問數據庫是才打開連接# __init__.py from extensions import dbapp = Flask(__name__) app.init_app(app=app)
  • 定義數據庫model
# models.py from extensions import dbclass User(db.Document):"""用戶model"""meta = {'collection': 'todo', # 指定集合'ordering': ['-create_at'], # 指定查詢順序'strict': False, # 是否使用嚴格模式,默認是True'max_documents': 1000, # 文檔數'max_size': 2000000 # 字節數}email = db.Document.StringField(default='') # 設置默認值username = db.Document.StringField(max_length=50,required=True) # 最大長度,不能為空values = ListField(IntField(), default=[])class Book(db.Document):author = ReferenceField(User)通用參數: max_length:最大長度 required:是否要求一定存在這個字段 default: 默認值; unique:是否不能重復,true表示唯一 primary_key:是否作為主鍵 choices:枚舉,如:choices=[A,B,C],choices=((A,large),(B,small))或限制值
  • 常用的字段
StringField 字符串 BinaryField 二進制 PasswordField 密碼 URLField url格式字符串 EmailField email格式字符串 IntField 整數 FloatField 浮點數 BooleanField 布爾 DateTimeField 日期 DictField 字典 FileField GridFS存儲字段 ImageField 圖像文件存儲區域 ListField 數組類型 EmbeddedDocumentField 嵌入文件 ReferenceField 引用其他的model,相當于外鍵
  • 查詢
users = User.objects(username='xxx') # 獲取查詢對象 # 排序 users = User.objects(username='xxx').order_by("_id") # 限制返回 users = User.objects(username='xxx').limit(3) # 過濾器 first():返回第一個 all() : 返回列表 get(_id=xxx):通過id查詢 get_or_404:與.get()類似,但如果對象為DoesNotExist,則調用abort(404)。 first_or_404:與上面相同,除了.first()。 paginate:對QuerySet進行分頁。采用兩個參數,page和per_page。 paginate_field:從QuerySet中的一個文檔中分頁。參數:field_name,doc_id,page,per_page
  • 添加
user = User(username='xiaoming') user.save()
  • 更新
user = User.objects(username='xxx').first() user.update(email='626004181@qq.com')
  • 刪除
user = User.objects(username='xxx').first() user.delete()

python連接mongodb集群

# pymongo from pymongo import MongoClient client = MongoClient('mongodb://admin:123456@ip1:port,ip2:port,ip3:port')# mongoengine from mongoengine import connect client = connect('user', host='mongodb://admin:123456@ip1:port,ip2:port,ip3:port')# flask_mongoengine # setting.py MONGODB_SETTINGS = [{'db': 'project1','host': '192.168.1.21','port': 27017, }, {'db': 'project1','host': '192.168.1.21','port': 27017, }, ]

參考:

  • http://docs.mongoengine.org/projects/flask-mongoengine/en/latest/

  • http://www.pythondoc.com/flask-pymongo/

轉載于:https://www.cnblogs.com/cwp-bg/p/9473144.html

總結

以上是生活随笔為你收集整理的MongoDB之python简单交互(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。