MongoDB 所支持的数据类型 创建和删除集合 创建和删除数据库

时间:2022-05-22 12:05:50

数据类型

MongoDB 支持如下数据类型:

  • String:字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
  • Integer:整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。
  • Boolean:布尔值。用于存储布尔值(真/假)。
  • Double:双精度浮点值。用于存储浮点值。
  • Min/Max keys:将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
  • Arrays:用于将数组或列表或多个值存储为一个键。
  • Timestamp:时间戳。记录文档修改或添加的具体时间。
  • Object:用于内嵌文档。
  • Null:用于创建空值。
  • Symbol:符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
  • Date:日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
  • Object ID:对象 ID。用于创建文档的 ID。
  • Binary Data:二进制数据。用于存储二进制数据。
  • Code:代码类型。用于在文档中存储 JavaScript 代码。
  • Regular expression:正则表达式类型。用于存储正则表达式。

创建集合

createCollection() 方法

在 MongoDB 中,创建集合采用 db.createCollection(name, options) 方法。

语法格式

createCollection() 方法的基本格式如下:

db.createCollection(name, options)

在该命令中,name 是所要创建的集合名称。options 是一个用来指定集合配置的文档。

参数 类型 描述
name 字符串 所要创建的集合名称
options 文档 可选。指定有关内存大小及索引的选项

参数 options 是可选的,所以你必须指定的只有集合名称。下表列出了所有可用选项:

字段 类型 描述
capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。
autoIndexID 布尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数值 (可选)为固定集合指定一个最大值(以字节计)。
如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量。

在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。

范例

不带参数的 createCollection() 方法的基本格式为:

>use test
switched to db test
>db.createCollection("mycollection")
{ "ok" : 1 }
>

可以使用 show collections 来查看创建了的集合。

>show collections
mycollection
system.indexes

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

>db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )
{ "ok" : 1 }
>

在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。

>db.tutorialspoint.insert({"name" : "tutorialspoint"})
>show collections
mycol
mycollection
system.indexes
tutorialspoint
>

删除集合

drop() 方法

MongoDB 利用 db.collection.drop() 来删除数据库中的集合。

语法格式

drop() 命令的基本格式如下:

db.COLLECTION_NAME.drop()

范例

首先检查在数据库 mydb 中已有集合:

>use mydb
switched to db mydb
>show collections
mycol
mycollection
system.indexes
tutorialspoint
>

接着删除集合 mycollection。

>db.mycollection.drop()
true
>

再次检查数据库中的现有集合:

>show collections
mycol
system.indexes
tutorialspoint
>

如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。

创建数据库

use 命令

MongoDB 用 use + 数据库名称 的方式来创建数据库。use 会创建一个新的数据库,如果该数据库存在,则返回这个数据库。

语法格式

use 语句的基本格式如下:

use DATABASE_NAME

范例

创建一个名为 的数据库,使用 use 语句如下:

>use mydb
switched to db mydb

使用命令 db 检查当前选定的数据库。

>db
mydb

使用命令 show dbs 来检查数据库列表。

>show dbs
local 0.78125GB
test 0.23012GB

刚创建的数据库(mydb)没有出现在列表中。为了让数据库显示出来,至少应该插入一个文档。

>db.movie.insert({"name":"tutorials point"})
>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB

在 MongoDB 中,默认的数据库是 test,如果你没有创建任何数据库,那么集合就会保存在 test 数据库中。

删除数据库

dropDatabase() 方法

MongoDB 的 dropDatabase() 命令用于删除已有数据库。

语法格式

dropDatabase() 命令的语法格式如下:

db.dropDatabase()

它将删除选定的数据库。如果没有选定要删除的数据库,则它会将默认的 test 数据库删除。

范例

首先使用 show dbs 来列出已有的数据库。

>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB
>

如果想删除新数据库 <mydb>,如下面这样使用 dropDatabase() 方法:


>use mydb
switched to db mydb
>db.dropDatabase()
>{ "dropped" : "mydb", "ok" : 1 }
>

再来看一下数据库列表,确实删除了 <mydb>

>show dbs
local 0.78125GB
test 0.23012GB
>