首先来介绍下Mongodb的基本概念:

左边一列是关系数据库的术语,右边这一列是NOSQL也就是mongodb的术语

database:       database         数据库

table:          collection        数据库表/集合

row:           document        数据记录行/文档

coloum:        field            数据字段/域

index:          index           索引

table joins:                      表连接,Mongodb不支持

primary key:     primay key       主键,Mongodb自动将id设为主键

首先来看数据库的概念,进入mongo后用show dbs可以查看当前所有的数据列表:此时刚安装好只有admin和local两个数据库

> show dbs

admin  0.000GB

local  0.000GB

use命令选择需要使用的数据库。

> use admin

switched to db admin

如果我们想创建自己的一个数据库也可以使用use命令。可以看到新建的数据库再用show dbs的时候是无法观察到的。这需要我们插入数据

> use maple

switched to db maple

> show dbs

admin  0.000GB

local  0.000GB

> db

maple

在插入数据前需要介绍文档和集合的概念:

文档是一组键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。一个文档的例子:{‘name’:’zhf’}。这和字典的格式是一样的。

文档格式需要注意的是:

  1. 文档中的键/值对是有序的。
  2. 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
  3. MongoDB区分类型和大小写。
  4. MongoDB的文档不能有重复的键。
  5. 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。

文档键命名规范:

  • 键不能含有\0 (空字符)。这个字符用来表示键的结尾。
  • .和$有特别的意义,只有在特定环境下才能使用。
  • 以下划线"_"开头的键是保留的(不是严格要求的)。

集合:

集合就是 MongoDB 文档组,前面我们介绍术语的时候集合对应着关系数据库的table也就是表格。而文档对应关系数据库的行。因此集合可以看做是文档的集合。集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。比如,我们可以将以下不同数据结构的文档插入到集合中:

{‘name’:’zhf’}

{‘name’:’zhf’,’city’:’chengdu’}

{‘name’:’zhf’,’city’:’chengdu’,’age’:30}

从这可以看出,相比与关系数据库中的数据,mongodb的数据结构更加随意。不要求每行的数据类型都一样。

集合的命令规范

  • 集合名不能是空字符串""。
  • 集合名不能含有\0字符(空字符),这个字符表示集合名的结尾。
  • 集合名不能以"system."开头,这是为系统集合保留的前缀。
  • 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。

介绍完文档和集合,我们就来向数据库中插入一组数据。插入后通过show dbs就可以找到我们的数据库了

> db.maple.insert({"name":"zhf"})

WriteResult({ "nInserted" : 1 })

> show dbs

admin  0.000GB

local  0.000GB

maple  0.000GB

前面db.maple.insert()命令其实是在maple数据库中的maple集合插入了一个文档{“name”:”zhf”}

通过db.集合名.find()的方式就可以查询到集合的内容

> db.maple.find()

{ "_id" : ObjectId("5a3133be956c5a2e19343140"), "name" : "zhf" }

使用show collections的方式就可以列出所有存在的集合。

> show collections

maple

如果要删除集合,使用db.集合名.drop()的方式

> db.maple.drop()

true

> show collections

如果要删除数据库。采用db.dropDatabase()命令

> db.dropDatabase()

{ "dropped" : "maple", "ok" : 1 }

> show dbs

admin  0.000GB

local  0.000GB

mongodb学习之:数据库的更多相关文章

  1. MongoDB学习笔记——数据库操作

    使用use数据库名称来创建数据库,如果该数据库已经存在则返回这个数据库 语句格式:use DATABASE_NAME >use mynewdb switched to db mynewdb 使用 ...

  2. MongoDB学习笔记——数据库安装及配置

    MongoDB数据库安装 MongoDB官方下载地址:https://www.mongodb.com/download-center 首先需要根据Windows版本选择正确的MongoDB版本进行安装 ...

  3. MongoDB学习笔记——数据库的创建与初始

    Part1:MongoDB与SQL的概念对比 图片来源--菜鸟教程 Part2:MongoDB安装地址 直接下载地址:戳这里 备用地址:戳这里 通过备用地址(官网)下载时,要注意下面这个地方 Part ...

  4. MongoDB学习笔记(二:入门环境配置及与关系型数据库区别总结)

    一.下载及安装MongoDB MongoDB下载官网链接:http://www.mongodb.org/downloads 具体安装步骤教程:http://www.shouce.ren/api/vie ...

  5. MongoDB学习(四)客户端工具备份数据库

    在上一篇MongoDB学习(三)中讲解了如何在服务器端进行数据的导入导出与备份恢复,本篇介绍下如何利用客户端工具来进行远程服务器的数据备份到本地. 以客户端工具MongoVUE为例来进行讲解: 1.首 ...

  6. MongoDB学习笔记(2):数据库操作及CURD初步

    MongoDB学习笔记(2):数据库操作及CURD 数据库操作 创建数据库 首先MongoDB中数据库的创建和数据库的切换都是使用命令,USE DATABASE,如果要切换的数据库不存在则会进行创建, ...

  7. MongoDB学习笔记:MongoDB 数据库的命名、设计规范

    MongoDB学习笔记:MongoDB 数据库的命名.设计规范     第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ ...

  8. MongoDB学习(管理数据库和集合)

    管理数据库 显示数据库列表 show dbs 切换到其他数据库 use <database_name> 创建数据库 MongoDB没有提供显式的创建数据库的MongoDB shell命令. ...

  9. MongoDB学习笔记—Linux下搭建MongoDB环境

    1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...

  10. Mongodb学习笔记一(Mongodb环境配置)

    Mongodb学习 说明: MongoDB由databases组成,database由collections组成,collection由documents组成,document由fileds组成.Mo ...

随机推荐

  1. Codeforces 932 C.Permutation Cycle-数学 (ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined))

    C. Permutation Cycle   time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  2. 会话跟踪技术Cookieless

    会话跟踪技术Cookieless   在Web应用中,通常使用Cookie记录用户的状态,如用户名.访问时间等信息.当进行HTTP请求的时候,会自动发送Cookie信息给服务器.服务器接收到,就可以判 ...

  3. Java1.8新特性——接口改动和Lambda表达式

    Java1.8新特性——接口改动和Lambda表达式 摘要:本文主要学习了Java1.8的新特性中有关接口和Lambda表达式的部分. 部分内容来自以下博客: https://www.cnblogs. ...

  4. Java开发者使用C++写程序踩的坑

    笔者是一个很矛盾的人.平时用Java.但是一开始学习的时候学的是汇编语言,而且对C语言也很熟悉.为什么不学C++呢?是因为我可以完全用Java的编码规范去写C++.因此我不需要了解更多的诸如C++的命 ...

  5. Java调用Python程序

    最近,需要在应用中,需要使用Java程序去调用Python代码,主要有两种实现方式. 一.使用Jython架包 因为调用的Python代码中需要使用Json对象,开始使用jython2.5.2,发现不 ...

  6. Java使用logback记录日志时分级别保存文件

    说明:一般情况下logback可以指定类使用什么样的级别显示输出日志,并且同一类可以指定不能级别,然后对应级别进行输出日志. 第一种配置: <?xml version="1.0&quo ...

  7. android清除缓存为什么总是存在12k?

    转载请注明出处:http://blog.csdn.net/droyon/article/details/41116529 android手机在4.2之后.清除缓存总是会残留12k的大小.预计强迫症患者 ...

  8. 表现层 JSP 页面实现

    一.实验介绍 1.1 实验内容 本节课程主要利用 easyUI 实现系统的前端页面. 1.2 实验知识点 easyUI JavaScript html 1.3 实验环境 JDK1.8 Eclipse ...

  9. Python+Selenium框架设计--- Page Object Model

    POM(Page Object Model):页面对象模型,POM是一种最近几年非常流行的自动化测试模型,或者思想,POM不是一个框架,就是一个解决问题的思想.采用POM的目的,是为了解决前端中UI变 ...

  10. Linux CenOS Python3 和 python2 共存

    1.查看是否已经安装Python CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5. 使用 python -V 命令查看一下是否安 ...