创建Database
本文中的创建Database、Collection、用户操作都需要先打开并运行Mongo。
首先要先启动MongoDB服务,参考笔记(一)中的方法。接下来,在cmd窗口输入以下命令启动MongoDB客户端。
mongo
输入
1+1
用来验证是否成功,成功会返回结果 2
1. 查看MongoDB的database列表
show dbs
2. 查看当前连接所在的Database
db
3. 使用use 命令创建database
use db_name
use 命令只是向MongoDB注册database,并没有实际的创建。使用show dbs 查看,列表中没有该database。只要没有内容,就不存在,即使为该db创建了用户并登陆了也不行。
4. 在当前database中创建collection,并向集合中插入数据
db.foo.insert({_id:1,name:"test"})
此时,MongoDB真正创建database,查看存储数据的folder,发现多了两个.wt文件,一个用于存储数据,一个用于存储index。使用show dbs 查看,列表中存在该database。另外,在db里创建空的collection不插入数据也能真正创建database。
5. 删除当前database
执行删除指令时要十分小心,避免误删。
db.dropDatabase()
创建Collection
1. 首先,选择切换到要创建的database
use db_name
2. 创建collection完整的命令
db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean>, size: <number>, max <number>} )
3. 参数介绍
- name:集合的名字
- capped:是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义
- autoIndexId:是否使用_id作为索引,默认为使用(true或false)
- size:限制集合使用空间的大小,默认为没有限制(size的优先级比max要高)
- max:集合中最大条数限制,默认为没有限制
4. 使用示例
1)创建一个指定名称的集合
创建一个名字为"name"的集合,没有任何的大小,数量限制,使用_id作为默认索引
db.createCollection("name")
2)创建一个限制空间的集合
创建一个名字为name集合,限制它的空间大小为1M,如果超过1M的大小,则会删除最早的记录
db.createCollection("name",{size:1024})
或 db.createCollection("name",{capped:true,size:1024})
3)创建一个限制条数的集合
创建一个名字为name集合,最大条数为1024条,超过1024再插入数据的话会删除最早的一条记录。这里不能使用capped:true,否则会报错
db.createCollection("name",{max:1024})
4)创建一个限制空间和条数的集合
db.createCollection("name",{size:1024,max:1024})
或 db.createCollection("name",{capped:true,size:1024,max:1024})
创建用户
1. 选择数据库test
use test
2. 创建用户
自定义用户名:"root",密码:"123456"
db.createUser({user: "root", pwd: "123456", roles: [{ role: "dbOwner", db: "test" }]})