MongoDB基础

认识MongoDB

  • 基于分布式文件存储的开源数据库系统
  • 介于MySQL和Redis之间的数据库管理系统
  • 将数据存储为一个文档,文档类似与Json格式
  • 与关系型数据库最相似的非关系型数据库
  • 性能比MySQL略好
  • ::严格区分大小写::
  • 单、双引号可混用
MongoDB基础_第1张图片
关系型数据库与非关系型数据库对比

进入与退出

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}) //插入数据

噩梦条件

*不难但比较复杂*

MongoDB基础_第2张图片
操作符
 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命令,截图上交

  1. 添加数据
  2. 查看数据
  3. 修改数据
  4. 删除数据
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() //查找其它数据

你可能感兴趣的:(MongoDB基础)