目录
MongoDB 创建集合
实际操作
操作方式一(常规操作)
操作方式二(Capped介绍)
操作方式三(直接插入数据创建集合)
删除集合
MongoDB 创建集合
MongoDB 中使用 createCollection() 方法来创建集合。
语法
db.createCollection(name, options)
参数说明
MongoDB 中使用 createCollection() 方法来创建集合。
- name:要创建的集合名称
- options:可选参数,指定有关内存大小以及索引
options 详细说明:
字段 | 类型 | 是否可选 | 描述 |
capped | 布尔值 | 可选 | 如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数。 |
autoIndexld | 布尔值 | 可选 | 如为 true,自动在 _id 字段创建索引。默认为 false。 |
size | 数值(Number) | 可选 | 为固定集合指定一个最大值(以字节计)。 如果 capped 为 true,也需要指定该字段。 |
max | 数值(Number) | 可选 | 指定固定集合中包含文档的最大数量。 |
在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。
实际操作
操作方式一(常规操作)
首先按照前面一篇中的说明,创建 mongo 数据库,然后创建一个名字为 test 的集合:
# 创建 mongo 的数据库
> use mongo
switched to db mongo
# 创建 test 集合
> db.createCollection("test")
{ "ok" : 1 }
查询当前 db 中的集合:
> show collections
test
>
向当前的集合中插入一条数据:
> db.test.insert({"test":"123456"})
WriteResult({ "nInserted" : 1 })
图示:
操作方式二(Capped介绍)
Capped集合简介
- Capped 集合是一个固定大小,高性能的,文档按照插入顺序的一个集合。新的对象会把覆盖旧的对象,像环形缓存一样。
- find 时默认就是插入的顺序,Capped 集合会自动维护。
- Capped 集合用来解决top 多少的问题,最新的top条评论,最活跃的top用户...
语法
db.createCollection("集合名称", { capped : true, size : num, max : num } )
操作如下:
db.createCollection("log", { capped : true, size : 1000, max : 5 } )
插入数据:
db.log.insert({"name":"u1"})
db.log.insert({"name":"u2"})
db.log.insert({"name":"u3"})
db.log.insert({"name":"u4"})
db.log.insert({"name":"u5"})
# 查询数据
> db.log.find()
{ "_id" : ObjectId("5c712a4a3613e60670d697f4"), "name" : "u1" }
{ "_id" : ObjectId("5c712a553613e60670d697f5"), "name" : "u2" }
{ "_id" : ObjectId("5c712a593613e60670d697f6"), "name" : "u3" }
{ "_id" : ObjectId("5c712a5e3613e60670d697f7"), "name" : "u4" }
{ "_id" : ObjectId("5c712a633613e60670d697f8"), "name" : "u5" }
>
测试是否会被覆盖掉:
> db.log.insert({"name":"u6"})
> db.log.find()
{ "_id" : ObjectId("5c712a553613e60670d697f5"), "name" : "u2" }
{ "_id" : ObjectId("5c712a593613e60670d697f6"), "name" : "u3" }
{ "_id" : ObjectId("5c712a5e3613e60670d697f7"), "name" : "u4" }
{ "_id" : ObjectId("5c712a633613e60670d697f8"), "name" : "u5" }
{ "_id" : ObjectId("5c712c863613e60670d697f9"), "name" : "u6" }
>
图示:
查看一个集合是不是Capped集合
db.collection.isCapped()
# 例
> db.log.isCapped()
true
查看一个集合的状态
db.collection.stats()
# 列
db.log.stats()
操作方式三(直接插入数据创建集合)
在 MongoDB 中,可以不需要创建集合。当插入一些文档时,MongoDB 会自动创建集合。
> use mongo
switched to db mongo
> db.test2.insert({"test":"test2"})
WriteResult({ "nInserted" : 1 })
> show collections
test
test2
>
图示:
删除集合
语法
db.collection.drop()
图示: