半小时入门MongoDB

简单的来

Posted by QQL on February 4, 2019

mongoDB

初始MongoDB

mongoDB文档型数据库:

{"name":"alex","age":18}为一个文档,相当于数据库中的一行

集合就是一组文档,相当于关系库里的表。集合中的文档无序固定结构

  1. 多个文档组成集合,多个集合组成数据库
  2. 一个实例可以承载多个数据库
  3. 每个数据库都有独立的权限
  4. 保留的数据库名称(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/')

查看pymongo具体操作

使用面对对象的方式操作MongoDB–MongoEngine

查看