温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • 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