1.什么是[NoSQL]数据库
数据库:进行高效的、有规则的进行数据持久化存储的软件
NoSQL数据库:Not only sql,指代非关系型数据库
优点:高可扩展性、分布式计算、低成本、灵活架构、半结构化数据、简化关联关系
缺点:没有标准化、有限查询、不直观
2.常见[NoSQL]数据库 BSON==ison
列存储:Hbase、Cassandra、Hypertable
文档存储:MongoDB、CouchDB
k-v存储:TokyoCabinet、BerkeleyDB、MemcacheDB、redis
对象存储:Neo4J、Versant
Xml数据库:BerkeleyDB、BaseX
3.MongoDB概述
MongDB是一个基于分布式文件存储的NoSQL数据库
C++编写的运行稳定性能高的数据库
模式自由
面向集合
完整索引支持
复制和高可用性
more …
4.Mongodb下载安装
官方网站:https://www.mongodb.com/
下载【偶数为稳定版,如1.6,奇数为开发版,如1.7】
windows安装mongoDB
ubuntu安装mongoDB
5.Mongodb术语解释
database--database:数据库
table – collection:数据库表 – 集合
row – document: 数据记录 – 文档
column – field:数据字段 – 域
index – index :索引 – 索引
table-join – None:表连接~
primary key – primary key :主键
6.Mongodb基本操作
mongoDB将数据存储为一个文档
数据由 key=value 的键值对的形式组成
数据的操作:增删改查
nosql三元素:数据库 – 集合 – 文档 [--域]
7.MongoDB基本语法——数据库操作
db:查看当前指向的数据库
db.getName()
db.getHelp()查看db变量的所有办法
show dbs:查看当前所有的数据库
use <数据库名称>:指向一个数据库
Use数据库不会创建数据库,如果操作数据会自动创建数据库
db.dropDatabase():删除当前指向的数据库
8.MongoDB基本语法——集合操作
show collections:查看当前数据库所有集合 db.createCollection([, options]):创建一个集合
db.<集合名称>.drop():删除指定的集合
9.MongoDB基本语法——数据类型
ObjectID:文档id
String:字符串
Boolean:布尔值
Integer:整数
Double:浮点数
Arrays:数组或者列表
Object:嵌入的文档
Null:空值
Timestamp:时间戳
Date:日期时间
10.MongoDB基础语法——增加数据
语法:db.<集合名称>.insert(文档)
集合可以是原来存在的,可以是不存在的
文档:就是BSON (JSON)格式【python中的dict】表示的数据(dict)
简单查询:db.<集合名称>.find() 查询指定集合的数据
db.<集合名称>.find().pretty()改变数据列出方式
11.MongoDB基础语法——更新数据
语法:db.<集合名称>.update(,,[multi:])
update默认会修改全部;加$set会把添加内容追加到数据后。
db.user.updateOne({name:"haha"},{$set:{age:28,name:"hehe"}})
指定属性更新:$opration
multi:默认false更新符合条件第一条,设置true全集合更新
12.MongoDB基础语法——保存数据
语法:db.<集合名称>.save(文档)
特征:[_id]如果数据不存在~添加,如果数据存在~修改
13.MongoDB基础语法——删除数据
语法:db.<集合名称>.remove(, {justOne:})
参数query:删除文档的条件
参数justOne:设置为true或者1,删除一条;默认false删除多条
14.MongoDB基础语法——查询数据
基本查询
find([{文档条件}]):全集合查询
findOne([{文档条件}]):查询第一个
pretty():将查询结果格式化展示
14.1比较运算符(关系运算符)
默认判断,无运算符
$lt:little~小于 < less than
$lte:little or equals~小于等于 <=
$gt:granter~大于 >
$gte:granter or equals~大于等于 >=
例:
14.2逻辑运算符
逻辑与:并且运算,默认操作,无运算符
逻辑或:或者运算,$or
14.3范围运算符
$in:判断指定条件是否包含在某个范围内
$nin:判断指定条件是否不包含在某个范围内
14.4正则条件
/reg/:普通正则表达式
$regex:指定正则表达式
14.5自定义条件
$where:通过函数自定义条件[JS函数]
指定函数中,返回boolean类型的值
this表示每个要查询的文档
14.6数据查询——限制查询条数
.limit(count)
14.7数据查询——跳过记录行数
.skip(num)
14.8数据查询——投影:查询指定的域
find({}, {投影字段:1/0})
14.9数据查询——排序
.sort({字段:1/-1, ...})
14.10数据查询——统计
<find>.count().
<find({条件})>count()
db.<集合名称>.count({条件})
14.11数据查询——去重
db.<集合名称>.distinct(“去重域名称”, {条件})