数据类型
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
>