MongoDB(3)- Database 数据库相关
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 数据库相关的更多相关文章
- MongoDB和Redis-NoSQL数据库-文档型-内存型
1NoSQL简述 CAP(Consistency,Availabiity,Partitiontolerance)理论告诉我们,一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时 ...
- MongoDB非关系型数据库开发手册
一:NoSql数据库 什么是NoSQL? NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称. NoSQL用于超 ...
- 第12章—使用NoSQL数据库—使用MongoDB+Jpa操作数据库
使用MongoDB+Jpa操作数据库 SpringData还提供了对多种NoSQL数据库的支持,包括MongoDB;neo4j和redis.他不仅支持自动化的repository,还支持基于模板的数据 ...
- MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)
MySQL.MongoDB.Redis 数据库之间的区别与使用 MySQL.MongoDB.Redis 数据库之间的区别与使用(本章迭代更新) update:2019年2月20日 15:21:19(本 ...
- Android数据库相关整理
今天对Android中数据库相关的操作和代码做了一个整理,便于自己之后的查阅.主要内容有: 1.原生数据库写法 2.终端进sqlite的操作 3.第三方库 4.事务处理 5.权限和路径 一.原生数据库 ...
- MySQL、MongoDB、Redis数据库Docker镜像制作
MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...
- MongoDB 创建 Database 和 Collection
在开始使用MongoDB(Version:3.2.9)之前,必须首先在MongoDB中创建 Database 和 Collection.Database是相互独立的,每个Database都有自己的Co ...
- MySQL查看数据库相关信息
使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> show databases ...
- 使用MongoDB作为后台数据库的尝试
MongoDB作为一个阶层型数据库,在很短的时间里面是不可能被大面积推广使用的, 本文作为一个实验性的课题,探讨一下MongoDB作为网站数据库的可能性. 1.MongoDB作为代替关系型数据库的可能 ...
随机推荐
- Java8 Lambda表达式(二)
目录 一.Java8 内置的四大核心函数式接口 1. 消费型接口 Consumer 2. 供给型接口 Supplier 3. 函数型接口 Function 4.断言型接口 Predicate 二.方法 ...
- Mybatis学习笔记-日志
日志工厂 如果一个数据库操作出现异常,在排错时,则需要日志 SLF4J Apache Commons Logging(COMMONS_LOGGING) LOG4J LOG4J2 JDK logging ...
- 查看Android 系统发送的广播
命令行输入如下命令 adb shell dumpsys |grep BroadcastRecord
- Android系统编程入门系列之服务Service齐头并进多线程任务
在上篇文章中初步了解了Android系统的四大组件之一的服务Service,在服务内可以执行无用户交互的耗时操作任务,但是包括之前关于界面系列文章在内,生命周期方法都是在主线程内被系统回调的.如果直接 ...
- 你认为的.NET数据库连接池,真的是全部吗?
一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一配置和维护,业务方通过某个字符串配置拿到的是Connection对象. DBA能在对业务方无侵 ...
- Python--数据存储
新建测试文档测试.txt内容如下: 张三:今天天气真好. 李四:是的,真的太好了. 张三:阳光明媚. 李四:鸟语花香. 王五:装逼现场:请带好安全帽 张三:难得好天气,今天就不偷懒了. 李四:能把乞讨 ...
- 如何用Git上传项目到GitHub
1.登录gitHub,进入主页面,点击"+"号,建立新仓库. 2. 输入自己的仓库名,和简单的描述,根据自己设置为公开的或私有的. 我输入的是仓库名为ESMS. 勾选此选项,rea ...
- Git-07-分支管理
创建与合并分支 为什么要创建分支? 假设你准备开发一个新功能,但是需要两周才能完成, 第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了. 如果等代码全部写完 ...
- 北航面向对象OO第三单元——JML
简介 本单元借助JML(Java Modeling Language),训练了我们关于的"规格(specification)"的意识和思想 本单元代码难度较低,简单来讲就是给你规定 ...
- vivo商城计价中心 - 从容应对复杂场景价格计算
一.背景 随着vivo商城的业务架构不断升级,整个商城较为复杂多变的营销玩法被拆分到独立的促销系统中. 拆分后的促销系统初期只是负责了营销活动玩法的维护,促销中最为重要的计价业务仍然遗留在商城主站业务 ...