如何利用Python操作MongoDB数据库的详细指南

数据库的分类 数据库可以简单的分为 MySQL 和 NOSQL 两类。这里的 NOSQL 不是 NO SQL 的意思,他的意思是 Not Only MySQL

数据库的分类

数据库可以简单的分为 MySQLNOSQL 两类。这里的 NOSQL 不是 NO SQL 的意思,他的意思是 Not Only MySQL

MySQL与NoSQL之间的区别:

1、MySQL是一个基于表格设计的关系数据库,而NoSQL本质上是非关系型的基于文档的设计。

2、MySQL数据库,覆盖了巨大的IT市场;具有固定市场的MySQL数据库包含一个庞大的社区。而NoSQL数据库是最新的到来,与MySQL相比,社区正在慢慢发展。

3、MySQL的严格模式限制并不容易扩展,而NoSQL可以通过动态模式特性轻松扩展。

4、MySQL中创建数据库之前需要详细的数据库模型,而在NoSQL数据库类型的情况下不需要详细的建模。

5、MySQL提供了大量的报告工具,可以帮助应用程序有效,而NoSQL数据库缺少用于分析和性能测试的报告工具。

6、MySQL是一个关系数据库,其设计约束灵活性较低;而NoSQL本质上是非关系型的,与MySQL相比,它提供了更灵活的设计。

7、MySQL中使用的标准语言是SQL;而NoSQL中缺乏标准的查询语言。

mongodb是什么

mongodb是一种数据库,它可以储存键值对类型的数据(json,字典)。目前流行的数据库是 MySQL ,但它并不利于初学者入门。我之前发过 Tinydb,Sqlite3 等数据库的讲解,都比较简单,那我这次来发一下mongodb数据库。

mongodb 的数据库、集合

一个数据库下可以有多个集合,集合里存储数据。集合可以理解为 SQL 数据库中的表。

使用Python操作mongodb

安装 mongodb

终端运行

pip install pymongo

连接数据库

client = pymongo.MongoClient(host, port)

host是地址,port 是端口。

切换数据库 第一种方法

db_name = client['db_name']

其中 db_name 是你的数据库名。

第二种方法

db_name = client.get_database('db_name')

其中 db_name 是你的数据库名。

第三种方法

db_name = client.db_name

切换集合

db_name.test

其中 test 是集合名,没有这个集合会自动创建。

添加数据

def add_data(data):
    result = db_name.test.insert_one(data)
    print(result.inserted_id)

其中 test 是集合名。

添加数据用 insert_one 方法。

其中,data 是要插入的数据,它的类型是键值对,即 Python 中的字典。这是一条合法的 data

{"name":"XiaoMing","password":123456}

特殊的,如果要插入在指定 id ,可以这样写

result = db_name.test.insert_one({_id:1,"xxx":"xxx",...})

也可以插入多个,只需要把 data 变成

[{"name":"XiaoMing","password":123456},{"name":"XiaoHong","password":123456}]

删除数据

db.test.remove(查询表达式, isJustOne)

查询表达式有这些

语法操作格式
$eq等于{:}
$lt小于{:{$lt:}}
$lte小于或等于{:{$lte:}}
$gt大于{:{$gt:}}
$gte大于或等于{:{$gte:}}
$ne不等于{:{$ne:}}
$or{$or:[{},{}]}
$in在范围内{age:{$in:[val1,val2]}}
$nin不在范围内{age:{$nin:[val1,val2]}}

例如,删除 test 集合中 name 是 XiaoMing 的所有数据

db.test.remove({<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->name:"XiaoMing"})

修改数据

db.collection.update(查询表达式,新值,选项) 选项: {upsert : true/false, multi : ture/false}

  • upsert:默认为 false , 作用:无相应记录是否insert,与mysql中的replace同
  • multi:默认为 false , 作用:是否作用于多条
#替换文档,将name为zhangsan的第一个文档替换为{"name":"lisi","age":10}
db.stu.update({"name":"zhangsan"},{"name":"lisi","age":10})
$set修改器,指定要更新的key,key不存在则创建,存在则更新。
#将name为zhangsan的所有文档替换为{"name":"lisi","no":'100'}
db.stu.update({"name":"zhangsan"},{$set:{"name":"lisi","no":'100'}},{multi:true})

查找数据

#查找所有数据
db.集合名.find()
# 查找到所有匹配数据
db.集合名.find({条件文档})
# 只返回匹配的第一个数据
db.stu.find({age:{$gt:16}}) #查询年龄大于16的记录
db.stu.find({$or:[{age:{$gt:18}},{name:"xiaoming"}]) #查询年龄大于18或者名字是xiaoming的记录
#使用$where后面写一个函数,返回满足条件的数据
db.stu.find({$where:function(){return this.age>20}})
#用于读取指定数量的文档
db.集合名称.find().limit(NUMBER)
#对查询结果排序(参数1升序,参数-1降序)
db.集合名称.find().sort({字段:1,...}) 
#统计结果中的文档数
db.集合名称.find({条件}).count()

到此这篇关于利用Python操作MongoDB数据库的详细指南的文章就介绍到这了,更多相关Python操作mongodb数据库内容请搜索好代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好代码网!

您可能有感兴趣的文章
NoSql数据库介绍及如何使用Python连接MongoDB

Python操作MongoDB的好代码教程分享

MongoDB索引机制详解

如何利用python如何实现后端写网页(flask框架)

python数据库操作--数据库如何使用概述