MongoDB的特点及概念

news/2024/7/23 19:27:05 标签: 数据库

MongoDB 的特点及概念

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

特点

1.MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
2.Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
3.MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
4.Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
5.Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
6.Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
7.GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
8.MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。、

概念

在mongodb中基本的概念是文档、集合、数据库

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键
在这里插入图片描述

数据库

一个mongodb中可以建立多个数据库
“show dbs” 命令可以显示所有数据的列表(所有数据库)。
执行 “db” 命令可以显示当前数据库对象或集合。
运行"use + 数据库名字"命令,可以连接到一个指定的数据库
有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库

admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

文档(Document)

文档是一组键值(key-value)对(即 BSON)。
一个简单的文档例子如下:
{“site”:“www.runoob.com”, “name”:“菜鸟教程”}
下表列出了 RDBMS 与 MongoDB 对应的术语:

RDBMS MongoDB
数据库 数据库
表格 集合
行 文档
列 字段
表联合 嵌入文档
主键 主键 (MongoDB 提供了 key 为 _id )

集合

集合就是 MongoDB 文档组,类似于 RDBMS 中的表格。
集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

比如,我们可以将以下不同数据结构的文档插入到集合中:

{“site”:“www.baidu.com”}
{“site”:“www.google.com”,“name”:“Google”}
{“site”:“www.runoob.com”,“name”:“菜鸟教程”,“num”:5}

当第一个文档插入时,集合就会被创建。


http://www.niftyadmin.cn/n/886873.html

相关文章

JavaScript中Blob对象及示例

Blob(binary large object)是计算机界通用术语之一,表示二进制大对象。在JavaScript中,Blob通常表示二进制数据,不过,它们不一定非得是大量数据,Blob也可以表示一个小型文本文件的内容。 1、将Echarts图表保存至AnySh…

Mercurial常用命令

Mercurial常用命令 切换分支 $ hg pull -r thebranch $ hg update -r thebranch update 到指定分支: hg update -r branch_name(指定revision) hg update -C branch_name (不指定revision) 清理本地操作 hg purge --all hg update --clea…

Python3数据结构汇总

字符 列表 元组 集合 字典 能否被索引或切片 能 能 能 否 否 元素能否被编辑 否 能 否 能 能 增 1、list.append(x):把一个元素添加到列表的结尾; 2、list.insert(i, x):在指定位置插入一个元素。第一个参数是准备插入到…

正则表达式实用规则介绍regular expression

正则表达式实用规则介绍regular expression ^[0-9]abc$ ^[0-9]abc$ 表达式的意义1.其中^ 为匹配输入字符串的开始位置。2.[0-9]匹配多个数字, [0-9] 匹配单个数字, 匹配一个或者多个。3.abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串…

git 常用命令介绍

git 常用命令介绍 本篇对常用的git命令进行简单讲解,如果想查看一些较为复杂命令的详解(如cherry-pick,reset,merge,rebase等),请看我的git标签的其他文章。 通过merge命令把master的内容更新到分支dev上 git checkout master …

Python:异常捕捉

多个异常捕捉语句: 1、多个异常,第一个捕捉到异常之后就不再继续捕捉了; 2、finally:不管是否捕捉到异常,都会去执行; 3、捕捉到异常后可以选择如何处理,如果还想把原有的异常抛出&#xff0…

git cherry-pick使用详解

git cherry-pick使用详解 cherry-pick 和它的名称一样,精心挑选,挑选一个我们需要的 commit 进行操作。它可以用于将在其他分支上的 commit 修改,移植到当前的分支。 常见使用场景 想在某个稳定版本上,添加一个刚开发完成的版本…

Python的argv怎么使用(Python参数、解包和变量)

argv:即所谓的参数变量,这个变量保存着你运行Python脚本时传递给Python脚本的参数。 解包:把argv中的东西取出来,将所有的参数依次赋值给左边的变量。 在argv.py文件中输入以下代码: from sys import argv script, …