MongoDB简介
是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
/data/db 是 MongoDB 默认的启动的数据库路径(dbpath)
mongod ## 服务进程
mongo ## 后台管理 Shell
MongoDB 概念解析
SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键
MongoDB - 连接
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
mongodb:// 这是固定的格式,必须要指定。
## mongodb://root:root@localhost:27017
常用命令
## 数据库
use database_name 如果数据库不存在,则创建数据库
db 查看当前连接的数据库
show dbs 查看所有数据库
db.dropDatabase() 删除当前数据库,默认为 test
## 集合/表
show tables/show collections ##查看所有表/集合
db.createCollection(collection_name, options) ##创建集合
db.collection_name.drop() ##删除集合
## 文档/行
db.collection_name.find() ##查看集合所有文档 pretty()以易读的方式来读取数据
db.collection_name.insertOne() ##集合插入一行文档
db.collection_name.insertMan() ##集合插入多行文档
可以将数据定义成一个变量,插入一个变量
## 更新文档
MongoDB 使用 update() 和 save() 方法来更新集合中的文档。
update() 方法用于更新已存在的文档。
db.collection_name.updateOne( ##只更新一行 updataMany更新多行
<query>, ##查询条件,类似sql update查询内where后面的。
<update>, ##一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
{
upsert: <boolean>, #如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi: <boolean>, #默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern: <document> #抛出异常的级别。
}
)
save() 方法通过传入的文档来替换已有文档。语法格式如下:
db.collection_name.save(
<document>, #文档数据。
{
writeConcern: <document>
}
)
## 删除文档
db.collection.deleteOne( ##删除一行 deleteMany删除多行
<query>,
{
writeConcern: <document>
}
)
## MongoDB 与 RDBMS Where 语句比较-####
等于 {<key>:<value>}
小于 {<key>:{$lt:<value>}}
小于或等于 {<key>:{$lte:<value>}}
大于 {<key>:{$gt:<value>}}
大于或等于 {<key>:{$gte:<value>}}
不等于 {<key>:{$ne:<value>}}
## AND 和 OR
MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。
db.collection_name.find({key1:value1, key2:value2})
MongoDB OR 条件
db.collection_name.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
)