91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析

python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析

發布時間:2021-05-24 10:11:14 來源:億速云 閱讀:118 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

MongoDB簡介

MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數據庫系統。

在高負載的情況下,添加更多的節點,可以保證服務器性能。

MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。

MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。

MongoDB應用場景

  • 大而復雜的數據

  • 移動和社會基礎設施數據

  • 內容管理和交付

  • 用戶數據

  • 管理數據中心

MongoDB優點

  • MongoDB 的架構較少。它是一個文檔數據庫,它的一個集合持有不同的文檔。

  • 從一個到另一個的文檔的數量,內容和大小可能有差異。

  • MongoDB 中單個對象的結構很清淅。

  • MongoDB 中沒有復雜的連接。

  • MongoDB 提供深度查詢的功能,因為它支持對文檔的強大的動態查詢。

  • MongoDB 很容易擴展。

  • 它使用內部存儲器來存儲工作集,這是其快速訪問的原因。

MongoDB缺點

  • 不支持事務操作

  • 占用空間過大

  • MongoDB沒有如MySQL那樣成熟的維護工具

  • 無法進行關聯表查詢,不適用于關系多的數據

  • 復雜聚合操作通過mapreduce創建,速度慢

  • 模式自由, 自由靈活的文件存儲格式帶來的數據錯誤

CentOSP安裝MongoDB

下載安裝MongoDB

下載 3.0.6 版本

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz

安裝

tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

移動文件夾

mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb

增加環境變量

export PATH=/usr/local/mongodb/bin:$PATH

啟動MongoDB

nohup /usr/local/mongodb/bin/mongod --dbpath=/data/db --rest > /usr/local/mongodb/mongo.log 2>&1 &

查看是否啟動

netstat -tnlp|grep mongo

端口

27017是默認開的mongodb端口,28017是默認的web訪問端口

效果

python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析

如果開了外網端口,用瀏覽器查看是否外網訪問

python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析

MongoDB常用命令

連接mongoDB

/usr/local/mongodb/bin/mongo

效果

python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析

顯示數據庫列表

show dbs

效果

python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析

顯示表單(集合)列表

# 切換分支
use mongodb_test
# 顯示列表
show tables
# 顯示列表
show collections

show tables 和 show collections 效果相同

效果

python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析

查詢集合所有數據

db.col_test.find()

效果

python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析

Python3連接操作MongoDB

安裝PyMongo

 pip install pymongo

注意事項

注意,如果創建的數據庫、表單中沒有數據,是顯示不出來數據庫的。

python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析

顯示數據庫列表

from pymongo import MongoClient
client_ip = "193.112.61.11"
client_port = 27017
my_client = MongoClient(client_ip, client_port)
db_list = my_client.list_database_names() 
print("數據庫列表:",db_list)

python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析

連接測試

db = my_client.test
print("db:", db) 
testDB(my_client)

python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析

db_name = 'mongodb_test'
my_db = my_client[db_name]

表單(集合)列表

col_list = my_db.list_collection_names()

沒有此表單就創建這個表單,有此表單就連接這個表單

sheet_tab_one = my_db[name]

Python3增刪改查MongoDB數據

增加一條數據

# 刪除一條數據
def delData_one(my_col, myquery):
  result = my_col.delete_one(myquery)
  print(result.deleted_count,"數據已刪除")

增加多條數據

# 刪除多條數據
def delData_many(my_col, myquery):
  result = my_col.delete_many(myquery)
  print(result.deleted_count,"數據已刪除")

刪除數據

# 刪除一條數據
def delData_one(my_col, myquery):
  result = my_col.delete_one(myquery)
  print(result.deleted_count,"數據已刪除")

刪除多條數據

# 刪除多條數據
def delData_many(my_col, myquery):
  result = my_col.delete_many(myquery)
  print(result.deleted_count,"數據已刪除")

刪除一個表單

# 刪除一個表單
def delCol(my_col):
  my_col.drop()
  print("刪除表單成功")

更新數據

# 修改匹配到的第一條數據
def updateData_one(my_col, myquery, new_val):
  result = my_col.update_one(myquery, new_val)
  print(result.modified_count, "文檔已修改")
# 修改匹配到的多條數據
def updateData_many(my_col, myquery, new_val):
  result = my_col.update_many(myquery, new_val)
  print(result.modified_count, "文檔已修改")

查詢數據

# 查詢一條數據
def searchData_one(my_col):
  result = my_col.find_one()
  print(result)
# 查詢集合中所有數據
def searchData_many(my_col, limit = 0):
  for item in my_col.find().limit(limit):
    print(item)

根據指定條件查詢 或者 正則表達式查詢

# my_query = {"name": "ShaShiDi"} # 根據指定條件查詢
# my_query = {"name": {"$regex": "^S"}} # 以下實例用于讀取 name 字段中第一個字母為 "S" 的數據
# 根據指定條件查詢 或者正則表達式查詢(比如 my_query = { "name": { "$regex": "^S" } })
def searchData_miss(my_col, my_query):
  print("根據指定條件查詢: ", my_query)
  my_doc = my_col.find(my_query)
  for item in my_doc:
    print(item)

排序數據

# 按照某字段排序 默認True是正序,False是倒序
def sortData(my_col, my_key, sortB = True):
  if sortB:
    my_doc = my_col.find().sort(my_key)
  else:
    my_doc = my_col.find().sort(my_key, -1)
  for item in my_doc:
    print(item)

Python3操作MongoDB完整源碼

from pymongo import MongoClient
# 數據庫列表
def ifnotDB(my_client, db_name):
  db_list = my_client.list_database_names()
  print("數據庫列表:",db_list)
  if db_name in db_list:
    print("%s 數據庫已存在!"%db_name)
  else:
    print("%s 數據庫不存在!"%db_name)
# 測試數據庫是否連接成功 返回測試結果
def testDB(my_client):
  db = my_client.test
  print("db:", db)
  return db
# 創建一個數據庫 返回數據庫對象
def creatDB(my_client, name):
  my_db = my_client[name]
  ifnotDB(my_client, name)
  return my_db
# 表單列表
def ifnotCol(my_db, col_name):
  col_list = my_db.list_collection_names()
  if col_name in col_list:
    print("%s 集合已存在!"%col_name)
  else:
    print("%s 集合不存在!"%col_name)
# 創建一個表單 返回表單對象
def creatCol(my_db, name):
  sheet_tab_one = my_db[name]
  ifnotCol(my_db, name)
  return sheet_tab_one
# 增加一條數據 返回_id
def addData_one(my_col, my_json):
  result = my_col.insert_one(my_json)
  print(result.inserted_id,"增加一條數據")# 返回 _id 字段
  return result.inserted_id
# 增加多條數據 返回所有文檔對應的 _id 值
def addData_many(my_col, my_jsons):
  result = my_col.insert_many(my_jsons)
  print(result.inserted_ids)
  return result.inserted_ids
# 刪除一條數據
def delData_one(my_col, myquery):
  result = my_col.delete_one(myquery)
  print(result.deleted_count,"數據已刪除")
# 刪除多條數據
def delData_many(my_col, myquery):
  result = my_col.delete_many(myquery)
  print(result.deleted_count,"數據已刪除")
# 刪除一個表單
def delCol(my_col):
  my_col.drop()
  print("刪除表單成功")
# 修改匹配到的第一條數據
def updateData_one(my_col, myquery, new_val):
  result = my_col.update_one(myquery, new_val)
  print(result.modified_count, "文檔已修改")
# 修改匹配到的多條數據
def updateData_many(my_col, myquery, new_val):
  result = my_col.update_many(myquery, new_val)
  print(result.modified_count, "文檔已修改")
# 按照某字段排序 默認True是正序,False是倒序
def sortData(my_col, my_key, sortB = True):
  if sortB:
    my_doc = my_col.find().sort(my_key)
  else:
    my_doc = my_col.find().sort(my_key, -1)
  for item in my_doc:
    print(item)
# 查詢一條數據
def searchData_one(my_col):
  result = my_col.find_one()
  print(result)
# 查詢集合中所有數據
def searchData_many(my_col, limit = 0):
  for item in my_col.find().limit(limit):
    print(item)
# 根據指定條件查詢 或者正則表達式查詢(比如 my_query = { "name": { "$regex": "^S" } })
def searchData_miss(my_col, my_query):
  print("根據指定條件查詢: ", my_query)
  my_doc = my_col.find(my_query)
  for item in my_doc:
    print(item)
if __name__ == "__main__":
  client_ip = "服務器IP地址"
  client_port = 27017
  db_name = 'mongodb_test'
  col_name = 'col_test'
  my_json = {"name": "ShaShiDi", "url": "https://shazhenyu.blog.csdn.net/"}
  # 可以指定_id 我們也可以自己指定 id,插入
  my_jsons = [{"_id": 1,"name": "sha", "url": "https://www.shazhenyu.com"},{"_id": 2,"name": "sha2", "url": "https://shazhenyu.com"}]
  my_query = {"name": "ShaShiDi"}
  my_query_regex = {"name": {"$regex": "^S"}} # 以下實例用于讀取 name 字段中第一個字母為 "S" 的數據
  my_key = "_id"
  new_values = {"$set": {"name": "ShaShiDi_new"}}
  my_client = MongoClient(client_ip, client_port)
  testDB(my_client)
  my_db = creatDB(my_client,db_name)
  my_col = creatCol(my_db,col_name)
  # # 增加一條數據
  # addData_one(my_col, my_json)
  # # 增加多條數據
  # addData_many(my_col, my_jsons)
  # # 刪除一個符合條件的集合
  # delData_one(my_col, my_query)
  # # 刪除所有符合條件的集合
  # delData_many(my_col, my_query)
  # # 刪除該集合中的所有文檔
  # delData_many(my_col, {})
  # # 刪除表單
  # delCol(my_col)
  # # 修改第一個匹配到的文檔
  # updateData_one(my_col, my_query, new_values)
  # # 修改所有符合條件的文檔
  # updateData_many(my_col, my_query, new_values)
  # # 按照某字段排序 默認True是正序,False是倒序
  # sortData(my_col, my_key)
  # # 根據指定條件查詢
  # searchData_miss(my_col, my_query)
  # # 根據正則表達式查詢
  # searchData_miss(my_col, my_query_regex)
  # # 查詢集合中所有數據 如果寫第二個參數,就是指定條數記錄查詢
  # # searchData_many(my_col)
  # searchData_many(my_col,2)

python主要應用領域有哪些

1、云計算,典型應用OpenStack。2、WEB前端開發,眾多大型網站均為Python開發。3.人工智能應用,基于大數據分析和深度學習而發展出來的人工智能本質上已經無法離開python。4、系統運維工程項目,自動化運維的標配就是python+Django/flask。5、金融理財分析,量化交易,金融分析。6、大數據分析。

關于“python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彭泽县| 渭源县| 长沙县| 甘谷县| 乐都县| 牡丹江市| 永吉县| 南宁市| 什邡市| 兴业县| 罗甸县| 芒康县| 桐梓县| 浦县| 海盐县| 柳河县| 镇安县| 禄丰县| 浠水县| 巢湖市| 嘉义县| 三门峡市| 安国市| 夏邑县| 禄劝| 阳新县| 施甸县| 东乌| 汪清县| 石首市| 宜州市| 高州市| 梁河县| 英德市| 醴陵市| 新密市| 连云港市| 昭平县| 鄄城县| 青岛市| 诏安县|