目录

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集合简介

  1. Capped 集合是一个固定大小,高性能的,文档按照插入顺序的一个集合。新的对象会把覆盖旧的对象,像环形缓存一样。
  2. find 时默认就是插入的顺序,Capped 集合会自动维护。
  3. 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()

图示: