MongoDB教程9-MongoDB创建集合

MongoDB 将文档存储在集合中。集合类似于关系数据库中的表。如果集合不存在,则 MongoDB 会在第一次存储该集合数据时创建该集合。

MongoDB 集合的命名规则

MongoDB 的集合就相当于 MySQL 的一个表 table,MySQL 列出的所有表都可以使用 show tables,MongoDB 可以使用 show collections 展示所有集合。

集合是一组文档,是无模式的,集合名称要求符合 UTF-8 标准的字符串,同时要遵循下表所示的注意事项。

MongoDB 集合命名的注意事项
序号注意事项
1 集合名不能是空串
2 不能含有空字符 \0
3 不能以“system.”开头,这是系统集合保留的前缀
4 集合名不能含保留字符“$”

对于分别部署在 Windows、Linux、UNIX 系统上的 MongoDB,集合的命名方式与数据库命名方式一致。

创建集合

MongoDB 集合的创建有显式和隐式两种方法。

显式创建集合可通过使用db.createCollection(name, options)方法来实现,参数 name 指要创建的集合名称,options 是可选项,指定内存大小和索引等,下表描述 了 options 可使用的选项。

options 可以使用的选项
参数类型描述
capped Boolean (可选)如果为 true,则启用封闭的集合。上限集合是固定大小的集合,它在达到其最大时自动覆盖其最旧的条目。如果指定 true,则还需要指定 size 参数
size 数字 (可选)指定上限集合的最大大小(以字节为单位)。如果 capped 为 true,那么还需要指定此字段的值
max 数字 (可选)指定上限集合中允许的最大文档数

注意:在插入文档时,MongoDB 首先检查上限集合 size字段的大小,然后检查 max 字段。

显式创建集合的一个例子:

复制代码
> use myDB
switched to db myDB
>
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
>
> db.createCollection("myColl")  // 在myDB数据库中创建集合 myColl
{ "ok" : 1 }
复制代码

在 MongoDB 中,当插入文档时,如果集合不存在,则 MongoDB 会隐式地自动创建集合,方法如下:

> db.myColl2.insert({"name":"tom"})  // myColl2是集合名
WriteResult({ "nInserted" : 1 })
>
> show collections    // 查看此时的所有集合
myColl
myColl2

可以看到显示和隐式创建的集合...

之前提到过创建的数据库如果没有值的时候使用show dbs不会显示, 现在myDB数据库中已经有集合了, 再次查看

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
myDB    0.000GB

下面是带有几个关键参数的 createCollection() 的用法:

创建固定集合 myColl3,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。

> db.createCollection("myColl3", {capped:true, size:6142800, max:10000})
{ "ok" : 1 }
>
> show collections
myColl
myColl2
myColl3
posted @   KILLNPE  阅读(2016)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示