MongoDB

        MongoDB 是一个基于分布式文件存储的数据库, 是一个介于关系数据库和非关系数据库之间的产品,实质上是非关系数据库。

本地安装MongoDB

1.下载对应的版本,注意windows兼容的版本,这个一定区分清楚,

下载地址:Download MongoDB Community Server | MongoDB

2.新建data文件夹和文件夹

MongoDB_第1张图片

3.安装

双击:mongodb-win32-x86_64-2008plus-ssl-3.6.23-signed.msi文件开始安装

4.cmd命令框运行:mongod -dbpath  安装地址\data

5.访问地址:http://localhost:27017(如果不报错,本地环境就安装好了)

MongoDB_第2张图片

MongoDB_第3张图片

MongoDB操作以及关键字:

        基本的概念是文档、集合、数据库,这个概念有点抽象,那么我们对比sql来深入了解一下,没有sql经验的同学,先学习下Mysql

SQL术语/概念

MongoDB术语/概念

解释/说明

database

database

数据库

Table(表格)

Collection(集合)

数据库表/集合

Row(行)

Document(文档)

数据记录行/文档

Column(列)

Field(字段)

数据字段/域

index

index

索引

table joins(联合查询)

 (嵌入文档)

表连接,MongoDB不支持

primary key

primary key

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

MongoDB数据类型:

数据类型

描述

String

字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。

Integer

整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。

Boolean

布尔值。用于存储布尔值(真/假)。

Double

双精度浮点值。用于存储浮点值。

Min/Max keys

将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。

Array

用于将数组或列表或多个值存储为一个键。

Timestamp

时间戳。记录文档修改或添加的具体时间。

Object

用于内嵌文档。

Null

用于创建空值。

Symbol

符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。

Date

日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。

Object ID

对象 ID。用于创建文档的 ID。

Binary Data

二进制数据。用于存储二进制数据。

Code

代码类型。用于在文档中存储 JavaScript 代码。

Regular expression

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

MongoDB相关命令:

1.查看数据库:

Show dbs 

MongoDB_第4张图片

2.插入数据:

use database【这一步相当于创建】

db.database.insertOne(json格式数据)【这一步插入数据】

MongoDB_第5张图片 

3.删除数据库:

Db.dropdatabase

MongoDB_第6张图片

 

4.创建集合

Use database

db.createCollection(name, options)

Eg:db.createCollection("message",{size:80})

MongoDB_第7张图片

类型

描述

capped

布尔

(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。

autoIndexId

布尔

3.2 之后不再支持该参数。(可选)如为 true,自动在 _id 字段创建索引。默认为 false。

size

数值

(可选)为固定集合指定一个最大值,即字节数。
如果 capped 为 true,也需要指定该字段。

max

数值

(可选)指定固定集合中包含文档的最大数量。

5.查看集合

show collections 或 show tables

6.删除集合

db.collection.drop()

MongoDB_第8张图片

 

7.插入文档(集合中插入数据:document结构为json):

db.collect.insert(document)

MongoDB_第9张图片

8.修改文档(document结构为json):

db.collect.update(document)

MongoDB_第10张图片

9.删除文档(document结构为json)

db.collect.remove(document)

MongoDB_第11张图片

10.查询文档(个人理解:pretty相当于sql里面的where或者过滤器):

db.collect.find()

db.collect.findOne()

db.collect.find().pretty()

MongoDB_第12张图片

db.collect.find().limit(长度)

MongoDB_第13张图片 

db.collect.find().skip(数字);.skip(指定跳过数据个数)

MongoDB_第14张图片

db.collect.find().sort({key:1});(sort(key:1表示升序  -1表示降序):key表示排序的字段)

MongoDB_第15张图片

db.collect.find({$or: [{key1: value1}, {key2:value2}]}).pretty();(or条件)

MongoDB_第16张图片

通配符(类型见表):

uble

1

String

2

Object

3

Array

4

Binary data

5

Undefined

6

已废弃。

Object id

7

Boolean

8

Date

9

Null

10

Regular Expression

11

JavaScript

13

Symbol

14

JavaScript (with scope)

15

32-bit integer

16

Timestamp

17

64-bit integer

18

Min key

255

Query with -1.

Max key

127

11.添加索引:

db.collection.createIndex({"key":value})MongoDB_第17张图片

12.聚合方法:

db.collection.aggregate(AGGREGATE_OPERATION)

关键字:

表达式

描述

实例

$sum

计算总和。

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])

$avg

计算平均值

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}])

$min

获取集合中所有文档对应值得最小值。

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}])

$max

获取集合中所有文档对应值得最大值。

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}])

$push

将值加入一个数组中,不会判断是否有重复的值。

db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}])

$addToSet

将值加入一个数组中,会判断是否有重复的值,若相同的值在数组中已经存在了,则不加入。

db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}])

$first

根据资源文档的排序获取第一个文档数据。

db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])

$last

根据资源文档的排序获取最后一个文档数据

db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])

函数对比(Mysql对比,方便记忆):

作/函数

mongodb聚合操作

where

$match

group by

$group

having

$match

select

$project

order by

$sort

limit

$limit

sum()

$sum

count()

$sum

join

$lookup

你可能感兴趣的:(mongodb,数据库,nosql,非关系型数据库)