MongoDB将数据存储为一个文档,数据结构由键值对组成,mongodb文档类似于JSON对象,字段值可以包含其他文档,数组及文档数组。

mongodb入门学习(一)_数据库

 安装mongodb:

#拉取镜像

docker pull mongo:latest

#创建和启动容器

docker run -d --restart=always -p 27017:27017 --name mymongo -v /data/db:/data/db -d mongo

#进入容器

docker exec -it mymongo  /bin/bash

#使用MongoDB客户端进行操作

mongo

> show dbs #查询所有的数据库

admin 0.000GB

config 0.000GB

local 0.000GB

mongodb入门学习(一)_数据_02

mongo与mysql的对比如下所示:

SQL术语/概念

MongoDB术语/概念

解释/说明

database

database

数据库

table

collection

数据库表/集合

row

document

数据记录行/文档

column

field

数据字段/域

index

index

索引

table joins

表连接,MongoDB不支持

primary key

primary key

主键,MongoDB自动将_id字段设置为主键

 通过下图实例,我们也可以更直观的的了解Mongo中的一些概念:

mongodb入门学习(一)_数据库_03

 一个mongodb中可以建立多个数据库

常用操作:

1、 Help查看命令提示

db.help();

2、 切换/创建数据库

use test

如果数据库不存在,则创建数据库,否则切换到指定数据库

3、 查询所有数据库

show dbs;

4、 删除当前使用数据库

db.dropDatabase();

5、 查看当前使用的数据库

db.getName();

6、 显示当前db状态

db.stats();

7、 当前db版本

db.version();

8、 查看当前db的链接机器地址

db.getMongo〇;

mongodb中的集合相当于mysql中的表,对集合常用命令如下:

1、 创建一个集合(table)

db.createCollection( "collName");

2、 得到指定名称的集合(table )

db.getCollection("user");

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

正则表达式类型。用于存储正则表达式。

mongodb适用场景:

1、网站数据:Mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。

2、缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系统重启之后,由M ongo搭建的持久化缓存层可以避免下层的数据源过载。

3、大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵, 在此之前,很多时候程序员往往会选择传统的文件进行存储。

4、高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对Map Reduce弓摩的内置支持。

5、用于对象及 JSON数据的存储:Mongo的BSON数据格式非常适合文档化格式的存储 及查询。

mongodb不适用场景:

1、高度事务性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。

2、传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。