NOSQL,MongoDB的操作和索引

MongoDB创建和查看数据库

MongoDB 将 BSON 文档(即数据记录)存储在集合中,数据库包含文档集合。在 MongoDB 里面存在数据库的概念,但没有模式,保存数据的结构是 BSON 结构,只不过在进行一些数据处理的时候才会使用 MongoDB 自己的操作。

MongoDB 自带了一个功能强大的 JavaScript Shell,可以用于管理或操作 MongoDB。

MongoDB 数据库初始安装完成后,默认的数据库是 test,学习时可以在默认 test 数据库上进行各种练习操作。当然在实际的操作过程中需要创建很多实例,因此,用户需要掌握自定义数据库名称的基本规则。

MongoDB 数据库的命名规则

MongoDB 数据库的命名要符合 UTF-8 标准的字符串,同时要遵循下表所示的注意事项。

序号 注意事项
1 不能是空串
2 不得含有 /、\、?、$、空格、空字符等,基本只能使用 ASCII 中的字母和数字
3 区分大小写,建议全部小写
4 名称最多为 64 字节
5 不得使用保留的数据库名,如:admin、local、config

注意:数据库最终会成为文件,数据库名就是文件的名称。

  • 由于数据库名称在 MongoDB 中不区分大小写,因此数据库名称不能仅仅区别于字符。
  • 对于在 Windows 上运行的 MongoDB,数据库名称不能包含以下字符:/、\、“、$、*、< >、:、|、? 。
  • 对于在 UNIX 和 Linux 系统上运行的 MongoDB,数据库名称不能包含以下字符:/、\、。、"、$。
  • 虽然 UTF-8 可以提供很多国家的语言的命名格式,在 MongoDB 数据库命名时也可以使用汉字作为数据库名,但是最好尽量采用英文字母、数字、字符等为主的命名格式。

如下命名格式是正确的:myDB、my_NewDB、myDB12。

以下命名格式则不被 MongoDB 接受:.myDB、/123。

保留数据库

MongoDB 系统保留的数据库如表所示。

库名 作用
admin 权限数据库,添加用户到该数据库中,该用户会自动继承数据库的所有权限
local 数据库中的数据永远不会被复制
config 分片时,config 数据库在内部使用,保存分子信息
test 默认数据库,可以用来做各种测试等

创建数据库

MongoDB 使用 use 命令创建数据库,如果数据库不存在,MongoDB 会在第一次使用该数据库时创建数据库。如果数据库已经存在则连接数据库,然后可以在该数据库进行各种操作。

use myDB

查看数据库

MongoDB 使用 show 命令查看当前数据库列表,代码如下:

>show dbs        //可以在任意当前数据库上执行该命令
admin 0.000GB    //保留数据库,admin
myDB 0.000GB     //自定义数据库,myDB,该数据库里已经插入记录,没有记录的自定义数据库不会显示 
local 0.000GB    //保留数据库,local
test 0.000GB     //保留数据库,test

MongoDB 默认的数据库为 test,如果没有创建新的数据库,集合将存储在 test 数据库中。如果自定义数据库没有插入记录,则用户在查看数据库时是不会显示的,只有插入数据的数据库才会显示相应的信息。

统计数据库信息

MongoDB 使用 stats() 方法查看某个数据库的具体统计信息,注意对某个数据库进行操作之前,一定要用 use 切换至数据库,否则会出错,代码如下:

>use test              //选择执行的test数据库
switched to db test    //use执行后返回的结果
> db. stats ()         //统计数据信息
{
    
    "db" : "test",     //数据库名
    "collections" : 0, //集合数量
    "views" : 0,
    "objects" : 0,     //文档数量
    "avgObjSize" : 0,  //平均每个文档的大小
    "dataSize" : 0,    //数据占用空间大小,不包括索引,单位为字节
    "storageSize" : 0, //分配的存储空间
    "nuinExtents" : 0, //连续分配的数据块
    "indexes" : 0,     //索引个数
    "indexsize" : 0,   //索引占用空间大小
    "fileSize" : 0,    //物理存储文件的大小
    "ok" : 1 
}

删除数据库

MongoDB 使用 dropDatabase() 方法删除数据库,代码如下:

>db.dropDatabase ()    //删除当前数据库
{
    ndropped" : "myDBn Jok" : 1}    //显示结果删除成功

查看集合

MongoDB 使用 getCollectionNames() 方法查询当前数据库下的所有集合,代码如下:

>use test
>db.getCollectionNames ()    //查询当前数据下所有的集合名称

MongoDB创建集合

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

MongoDB 集合的命名规则

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

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

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

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

创建集合

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

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

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

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

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

db.createCollection("mySet", {capped:true,size:6142800, max :10000 })

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

db.myDB.insert( {"name": "tom"} )

其他集合操作

创建集合后可以通过 show collections 命令查看集合的详细信息,使用 renamecollection() 方法可对集合进行重新命名。

删除集合使用 drop() 方法,具体代码如下:

Show collections;
db.mySet.renameCollection( "orders2014");
db.orders2014.drop()

MongoDB文档键的命名规则

文档是 MongoDB 中存储的基本单元,是一组有序的键值对集合。文档中存储的文档键的格式必须是符合 UTF-8 标准的字符串,同时要遵循以下注意事项:

  • 不能包含\0字符(空字符),因为这个字符表示键的结束;
  • 不能包含$.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值