mongoDB的存储结构
数据库->集合->子集合->文档
文档:是mongoDB存储数据的最小集合,就是js的一个object,但是具有一定的顺序
子集合:是在集合下的一种分区方式
集合:一种比较大的分区方式
数据库:是数据最顶级的地址,通常一个mongoDB的实例可以存在多个数据库
文档的组成
文档是由多对key-value组成,每一个文档都有一个自己的id
key的写入条件:1.只能是字符串,2.区分大小写,3.接收UTF-8的字符但规范只允许使用英文和数字以及下划线
集合
集合就是一组文档,注意一个集合的设计方式比较重要,是快速查找数据的关键,因此要特别的设计。集合之下还有子集合。
集合名有限制:
- 不能以system.开头,这是保存系统数据的库
- 不能使用$符号
- 不能包含空字符
数据库
是多个集合的组成,有默认数据库名是不可以占用的,例如admin,local,config,数据库名+集合名的长度小于121字节(实践小于100字节)
数据库取名的限制:
- 基本上只能用ASCII码中的字母和数字以及下划线
- 数据库名不区分但是应全部小写
- 数据库名最多64个字节
启动
系统:macOS 10.14.6
一般启动顺序,启动mongod
启动客户端->mongo
启动Shell
但是初次启动失败了,原因是没有/data/db/文件夹,需要先
mkdir -p /data/db/
然后是mongoDB没有/data/db/的访问权限,只要执行chmod 777 /data/db
给权限即可
MongoDB shell简介
shell是一个功能完备的javascript 解释器,可以运行任意javascript程序
查看当前db,db也是当前db的代指
db
切换db
use other
创建数据
当前先创建一个post = {"title":'My Blog',"content":'blog','date':new Date()}
然后插入数据
db.blog.insert(post)
读取数据
查看集合的全部数据
db.blog.find()
db.blog.findOne()
更新数据
post.comments = []
全量更新
db.blog.update({title: "My Blog"}, post)
删除文档
db.blog.remove({title: "My Blog"})
网友评论