认识MongoDB
- 基于分布式文件存储的开源数据库系统
- 介于MySQL和Redis之间的数据库管理系统
- 将数据存储为一个文档,文档类似与Json格式
- 与关系型数据库最相似的非关系型数据库
- 性能比MySQL略好
- ::严格区分大小写::
- 单、双引号可混用
进入与退出
mongo
//进入MongoDB
exit
//退出MongoDB
库、集合操作
库级操作语句
show dbs //显示所有库(没有插入数据的新建库是显示不出来的)
use python38 //创建/切换数据库
db //查看当前在那个数据库
db.dropDatabase()//删除当前数据库 ::区分大小写::
show collections //显示所有库
集合操作语句
db.createCollection('student')//创建一个名为“student”的集合 ::区分大小写:: 一般不用刻意创建,添加数据会默认创建集合
db.student.drop() //删除名为“student”的集合
文档操作
添加文档(数据)
db.student.insert({name:'xiaobai',age:18}) //插入一条数据
db.student.find() //查看集合中全部数据
db.student.find({name:’shaonan’}) //指定查询
db.student.find({age:'18'}) //指定查询
db.student.find().pretty() //更好看的查询(一个字段一行)
db.student.insert([{_id:2,name:’shaonan’,age:18},{name:’shunkule’,age:20}]) //插入多个数据(_id为定义id,一般不用,会自动分配不重复的id),插入相同字段只取前面的数据
db.student.insert({name:'zhiyong',sex:'man',school:'tzxueyuan',age:20,city:'beijing',country:'China',high:180}) //插入数据
噩梦条件
*不难但比较复杂*
操作符 db.student.find({age:{$ne:20}}) //::“ne”为不等于::查询age不等于20的所有数据
db.student.find({$or:[{sex:'man'},{name:'shaonan'}]}) //查询”sex“为”man“或”name“为”shaonan“的数据
db.table.find({$or:[{$and:[{sex:’女’}, {age:18}]},{$and:[{sex:’男’}, {age:{$gt:18}}]}]}) //在SQL中为 select * from table where (sex = 女 and age = 18) or (sex = 男 and age > 18)
修改数据
db.student.update({sex:'man'},{age:20}) //将整条“sex”为“man”的数据改为“age:20“,其它的都覆盖了。真正的修改用下面一种👇
db.student.update({name:”shaonan’”},{$set:{age:20}}) //指定属性修改
db.student.update({age:20},{$set:{age:18}},{malti:true}) //将所有满足条件的都修改
删除数据
db.student.remove({name:'xiaobai' }) //指定删除”name”为”xiaobai”的数据,符合条件的都删除
db.student.remove({age:'20'},{justOne:true}) //删除第一条“age”为“20的数据 严格区分大小写,不然条件作废
db.student.remove({}) //删除全部数据
Python与MongoDB交互
需要先安装pymongo: pip install pymongo
::编辑器中除数字都要加引号::
import pymongo #导入模块
clint = pymongo.MongoClient() #连接MongoDB
db = clint['python38'] #连接集合
my_col = db['student'] #连接数据库
result = my_col.insert_one([{'名字':'小莫','age':18},{'name':'xiaobai','age':18}]) #插入数据
my_col.find_many() #查找
result = my_col.find()
for i in result: #打印查询的数据
print(i)
作业
练习 mongodb命令,截图上交
- 添加数据
- 查看数据
- 修改数据
- 删除数据
use test01 //创建并进入数据库“test01”
db.createCollection('student') //创建集合“student”
db.student.insert({name:'wangsicong',age:16}) //插入数据
db.student.update({name:"wangsicong"},{$set:{age:20}}) //有调价地修改数据
db.student.find() //查找全部数据
db.student.remove({name:'wangsicong'}) //删除数据
db.student.find() //查找其它数据
网友评论