mongoDB
初始MongoDB
mongoDB文档型数据库:
{"name":"alex","age":18}
为一个文档,相当于数据库中的一行
集合就是一组文档,相当于关系库里的表。集合中的文档无序固定结构
- 多个文档组成集合,多个集合组成数据库
- 一个实例可以承载多个数据库
- 每个数据库都有独立的权限
- 保留的数据库名称(admin、local、config)
默认端口:MongoDB:27017
mysql:3306
redis:6379
nginx:80
兼容很多JS的操作比如创建函数,执行函数等
映射关系:
数据库------>db
表--------->collection
字段-------->文档
MongoDB基本操作
查看
查看数据库 show dbs
切换数据库 use databasename 如果有则切换,如果没有则创建该数据库并进入
查看当前位置 db
创建文档(数据库中的表)
db.createCollection("collection_name")
增
创建对象:
插入文档:
对象名 = {
字段:xxx,
....
}
stu = {
name:"pig",
age:12
}
db.表名.insert(对象名)
db.student.insert(stu)
增加多条文档(数据):
db.表名.insertMany([对象,对象,对象,对象,对象....])
查
查看表:
show dbs
查看集合:
show collection
查看文档:
db.表名.find()查看表数据
db.表名.findOne()查看第一条数据,且该数据将会格式化展示
db.表名.find().pretty() 以易读方式读取数据,即格式化
查看文档,并且过滤数据(相当于select xxx)
db.表名.find(符合的条件,{过滤的字段:true/1}) # 1=true, 0=false
例如:db.student.find({gender:"男"},{name:1,age:true}) 只打印匹配数据的name和age和_id
默认打印文档_id,如果不需要id可以过滤_id:0进行排除
改
db.表名.update(原始数据,变更为数据) # 只会修改一条匹配记录,update第一个参数为筛选条件
db.表名.update(原始数据,变更为数据,{multi:true}) # {multi:true} # 修改多条匹配数据记录
为集合添加新的文档:
db.表名.update({},{$set:{文档key:"value"}}) # update第一个{},为该集合的所有文档
例如:
# 为每条记录(文档)添加新字段address
db.student.update({},{$set:{address:"---"}}, multi=true) # 更新多条数据
在已有文档的基础上进行修改:
db.表名.update(筛选条件, {$inc:{文档key:value}})
例如:
# 为女同学的年龄都增加1
db.student.update({'gender':'女'},{$inc:{age:1}}, multi=true)
删
删除集合:
db.表名.drop()
删除文档:
db.表名.remove(条件) 删除满足条件的文档,比如删除name=qql的文档
清空文档:db.表名.remove({})
pymongo
连接数据库方式:
from pymongo import MongoClient
方式一:简写
client = MongoClient()
方式二:指定端口地址
client = MongoClient('localhost', port)
方式三:使用URI
client = MongoClient('mongodb://localhost:27017/')