MongoDB中的集合是一组文档的集,相当于关系型数据库中的表。
1. 创建集合
MongoDB使用db.createCollection()函数来创建集合。
语法格式:db.createCollection(name, options)。
- name: 要创建的集合名称。
- options: 可选参数, 指定有关内存大小及索引的选项。
options 可以是如下参数:
字段 | 类型 | 类型 |
capped | 布尔 | (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数 |
autoindexid | 布尔 | (可选)如为 true,自动在 _id 字段自动创建索引。默认为false |
size | 数值 | (可选)为固定集合指定一个最大值(以字节为单位)。如果 capped 为 true,也需要指定该字段。 |
max | 数值 | (可选)指定固定集合中包含文档的最大数量。设置max时必须设置capped和size |
在插入文档时,MongoDB首先检查固定集合的size字段,然后检查max字段
1.1. 创建默认选项集合
注意: 集合是存在数据库中的,use 哪个数据库,创建的集合就在哪个数据库中,当我们在使用数据库时,如果不创建集合,默认会以数据库名称创建集合,注意,创建新的库需要指定用户,不是所有用户都可以操作的, 而且集合的名称是区分大小写的
- 使用管理员登录admin
use admin
- 用户认证
db.auth(“wql”,“123”)
- 创建数据库aaa
use aaa
- 创建用户
db.createUser({user:“aaa”,pwd:“aaa”,roles:[{role:“readWrite”,db:“aaa”}]})
Successfully added user: {
“user” : “aaa”,
“roles” : [
{
“role” : “readWrite”,
“db” : “aaa”
}
]
}
- 重新打开一个shell窗口,使用新创建的aaa用户登录,验证,插入数据即可,注意,默认创建的集合是数据库的名字
[mongodb@localhost bin]$ ./mongo
MongoDB shell version v4.0.27
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { “id” : UUID(“c22f31c7-8bfd-4367-a497-8614a200f59e”) }
MongoDB server version: 4.0.27use aaa
switched to db aaadb.auth(“aaa”,“aaa”)
1db.aaa.insert({aaa:“aaa”})
WriteResult({ “nInserted” : 1 })
- 查看当前存在哪些集合
show collections
1.2 创建不带参数的集合
我们也可以根据自身情况来创建集合,该集合创建时不需要指定任何参数,如果开启认证,则使用具有管理员权限的用户来创建集合;
> db.createCollection("bbb")
{ "ok" : 1 }
> show collections
bbb
ccc
>
1.3 创建包含选项的集合
所有选项写在createCollection第二个参数{}中
db.createCollection(“c2”,{“max”:2,capped:true,size:100000})
2. 查看集合
进入到集合所在数据库
use ccc
使用show tables或show collections查看
show collections
查看集合详情信息
db.集合名称.stats()
3. 删除集合
进入到集合所在数据库
use ccc
删除指定集合
db.集合名.drop()
> show tables
bbb
ccc
> db.bbb.drop()
true
>