MongoDB(一)

本文介绍了MongoDB的基础知识,包括MongoDB的三高需求、文档存储方式、查询支持和索引创建。详细讲解了数据库操作,如选择、创建、删除数据库,以及集合的显式和隐式创建。还详细阐述了文档的基本CRUD操作,如插入、查询、更新和删除文档,展示了各种操作的实例。

MongoDB

可应对三高需求:

  • 高并发
  • 高效率存储
  • 高可扩展性和高可用性的需求

应用操作方面共同特点

  • 数据量大
  • 写入操作频繁
  • 价值较低的数据

面向文档的–由于MongoDB是NoSQL类型的数据库,它不是以关系类型的格式存储数据,而是将数据存储在文档中。这使得MongoDB非常灵活,可以适应实际的业务环境和需求。

临时查询-MongoDB支持按字段,范围查询和正则表达式搜索。可以查询返回文档中的特定字段。

索引-可以创建索引以提高MongoDB中的搜索性能。MongoDB文档中的任何字段都可以建立索引。

复制-MongoDB可以提供副本集的高可用性。副本集由两个或多个mongo数据库实例组成。每个副本集成员可以随时充当主副本或辅助副本的角色。主副本是与客户端交互并执行所有读/写操作的主服务器。辅助副本使用内置复制维护主数据的副本。当主副本发生故障时,副本集将自动切换到辅助副本,然后它将成为主服务器。

负载平衡-MongoDB使用分片的概念,通过在多个MongoDB实例之间拆分数据来水平扩展。MongoDB可以在多台服务器上运行,以平衡负载或复制数据,以便在硬件出现故障时保持系统正常运行。

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

数据库操作

选择和创建数据库

use 数据库名称

如果数据库不存在则自动创建
查看有权限查看的所有的数据库命令

show dbs
或
show databases

注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

数据库名可以是满足以下条件的任意UTF-8字符串。

  • 不能是空字符串(“”)。

  • 不得含有’ '(空格)、.、$、/、\和\0 (空字符)。

  • 应全部小写。

  • 最多64字节。

  • 有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。

admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。

local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合

config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息

删除数据库

db.dropDatabase()

集合的显式创建(了解)

db.createCollection(name)
  • name: 要创建的集合名称

查看当前库中的表:show tables命令

show collections
或
show tables

集合的命名规范:

  • 集合名不能是空字符串""。

  • 集合名不能含有\0字符(空字符),这个字符表示集合名的结尾。

  • 集合名不能以"system."开头,这是为系统集合保留的前缀。

  • 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。

集合的隐式创建

当向一个集合中插入一个文档的时候,如果集合不存在,则会自动创建集合。通常我们使用隐式创建文档即可。

集合的删除

db.collection.drop()
或
db.集合.drop()

返回值

如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。

文档基本 CRUD

文档(document)的数据结构和 JSON 基本一样。

所有存储在集合中的数据都是 BSON 格式。

文档的插入

(1)单个文档插入

使用insert() 或 save() 方法向集合中插入文档,语法如下:

db.collection.insert(
	<document or array of documents>,
	{
	 writeConcern: <document>,
	 ordered: <boolean>
	}
)

参数:

Parameter Type Description
document document or array 要插入到集合中的文档或文档数组。((json格式)
writeConcern document optional
ordered boolen
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值