Database

  • MongoDB 将数据记录存储为文档(特别是 BSON 文档)
  • 这些文档在集合中聚集在一起
  • 数据库存储一个或多个文档集合。
  • 在 MongoDB 里面存在数据库的概念,但没有模式

Shell

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

错误的命名格式

.myDB、/123

保留数据库

MongoDB 安装成功后就有的数据库

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

但现在新版的,貌似没有 test 数据库了

查看数据库

MongoDB 使用 show 命令查看当前数据库列表

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

重点

  • MongoDB 默认的数据库为 test,如果没有创建新的数据库,集合(Collections)将存储在 test 数据库中
  • 如果自定义数据库没有插入记录,则用户在 show dbs 时是不会显示该自定义数据库的,只有存在数据的数据库才会显示

使用数据库

use database_name
  • 如果数据库已经存在连接数据库,然后可以在该数据库进行各种操作
  • 如果数据库不存在,则在第一次为该数据库存储数据时,MongoDB 会创建该数据库

小栗子

> show dbs  // 查看数据库
admin 0.000GB
config 0.000GB
local 0.000GB
> use test // 使用 test 数据库
switched to db test
> show dbs // 查看数据库,还是没有 test 数据库
admin 0.000GB
config 0.000GB
local 0.000GB
> db.myNewCollection1.insertOne( { x: 1 } ) // 插入一条数据到 test 数据库的 myNewCollection1 集合中
{
"acknowledged" : true,
"insertedId" : ObjectId("60b340d196a866c106d3c564")
}
> show dbs // 查看数据库,添加数据之后,test 数据库可以查看到了
admin 0.000GB
config 0.000GB
local 0.000GB
test 0.000GB

统计数据库信息

注意对某个数据库进行操作之前,一定要用 use 切换至数据库,否则会出错

> db.stats()
{
"db" : "test",
"collections" : 1,  // 集合数量
"views" : 0, // 视图数量
"objects" : 1,    // 文档数量
"avgObjSize" : 33, // 每个文档的平均大小(以字节为单位)
"dataSize" : 33, // 此数据库中保存的未压缩数据的总大小
"storageSize" : 20480, // 为此数据库中的集合分配的用于文档存储的总空间量
"indexes" : 1, // 索引数量
"indexSize" : 20480, // 索引大小
"totalSize" : 40960, // storageSize+indexSize
"scaleFactor" : 1,
"fsUsedSize" : 67665461248, // 正在使用的磁盘空间大小
"fsTotalSize" : 499963174912, // 总的磁盘空间大小
"ok" : 1
}

删除数据库

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

MongoDB(3)- Database 数据库相关的更多相关文章

  1. MongoDB和Redis-NoSQL数据库-文档型-内存型

    1NoSQL简述 CAP(Consistency,Availabiity,Partitiontolerance)理论告诉我们,一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时 ...

  2. MongoDB非关系型数据库开发手册

    一:NoSql数据库 什么是NoSQL? NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称. NoSQL用于超 ...

  3. 第12章—使用NoSQL数据库—使用MongoDB+Jpa操作数据库

    使用MongoDB+Jpa操作数据库 SpringData还提供了对多种NoSQL数据库的支持,包括MongoDB;neo4j和redis.他不仅支持自动化的repository,还支持基于模板的数据 ...

  4. MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)

    MySQL.MongoDB.Redis 数据库之间的区别与使用 MySQL.MongoDB.Redis 数据库之间的区别与使用(本章迭代更新) update:2019年2月20日 15:21:19(本 ...

  5. Android数据库相关整理

    今天对Android中数据库相关的操作和代码做了一个整理,便于自己之后的查阅.主要内容有: 1.原生数据库写法 2.终端进sqlite的操作 3.第三方库 4.事务处理 5.权限和路径 一.原生数据库 ...

  6. MySQL、MongoDB、Redis数据库Docker镜像制作

    MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...

  7. MongoDB 创建 Database 和 Collection

    在开始使用MongoDB(Version:3.2.9)之前,必须首先在MongoDB中创建 Database 和 Collection.Database是相互独立的,每个Database都有自己的Co ...

  8. MySQL查看数据库相关信息

    使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令   1:查看显示所有数据库 mysql> show databases ...

  9. 使用MongoDB作为后台数据库的尝试

    MongoDB作为一个阶层型数据库,在很短的时间里面是不可能被大面积推广使用的, 本文作为一个实验性的课题,探讨一下MongoDB作为网站数据库的可能性. 1.MongoDB作为代替关系型数据库的可能 ...

随机推荐

  1. Netty 源码分析系列(二)Netty 架构设计

    前言 上一篇文章,我们对 Netty做了一个基本的概述,知道什么是Netty以及Netty的简单应用. Netty 源码分析系列(一)Netty 概述 本篇文章我们就来说说Netty的架构设计,解密高 ...

  2. Java 使用 Apache commons-math3 线性拟合、非线性拟合实例(带效果图)

    Java 使用 CommonsMath3 的线性和非线性拟合实例,带效果图 例子查看 GitHub Gitee 运行src/main/java/org/wfw/chart/Main.java 即可查看 ...

  3. Xmind-xss漏洞复现并上线Coblat-strike

    前言:本漏洞由WebRay烽火台实验室发现,Xmind2020存在xss漏洞,并且可以进行任意代码执行,目前官方还未进行补丁修复,所以请目前Xmind用户警惕Xmind文件. 本博客讲复现漏洞及上线到 ...

  4. Bugku-web-字符?正则?

    题目意思很明显,根据给出的规则构造出合理的正则表达式然后通过get方式提交弹出Flag. i:字体大小 /..../表示开始和结束. .号表示匹配0-9任一数字 *号表示重复前一个字符多次 {4,7} ...

  5. HTTP状态码关于各个网站的实地调查

    我使用的是新版Edge浏览器,右键,点击检查,点击网络,可以看到请求的各种文件.那么以此来看看状态码的使用吧. 101 与websocket相关,websocket在慕课网中的应用 - KeBoom ...

  6. P5038 奇怪的游戏

    题目询问了一个不能确定的时间,所以显然做法中要包含一个二分答案. 我们将整张图分为黑白点两种,黑点旁边的点就是白点,白点旁边的点就是黑点,想一下就能知道,每次操作会使黑白点的数字各加一,而我们的目的就 ...

  7. Maven在IDEA中的日常使用

    1.为什么使用MavenMaven是我们在开发过程中常用的工具,主要用途有两种:1)方便的下载jar包2)项目打包接下来以windows操作系统为例,介绍一下Maven在IDEA中如何设置和常用的功能 ...

  8. 「TJOI2019」唱、跳、rap 和篮球 题解

    题意就不用讲了吧-- 鸡你太美!!! 题意: 有 \(4\) 种喜好不同的人,分别最爱唱.跳. \(rap\).篮球,他们个数分别为 \(A,B,C,D\) ,现从他们中挑选出 \(n\) 个人并进行 ...

  9. jpa中遇到关键字

    @Column(name = "`rank`") 或者 @Column(name = "\"use\"")

  10. python 日期、时间处理,各种日期时间格式/字符串之间的相互转换究竟是怎样的?

    模块函数说明 ''' date 日期对象,常用的属性有year,month,day time 时间对象,常用的属性有hour,minute,second,毫秒 datetime 日期时间对象,常用的属 ...