MongoDB的学习
MongoDB简介
什么是MongoDB
非关系型,分布式文档数据库
特定:扩展灵活,结构灵活,使用方便,支持查询、索引
缺点:缺乏事务控制,无法保障数据完整性
-
MongoDB是一个基于分布式文件存储的数据库(一个机器装了MongoDB不够用了还可以用另一个机器装)
-
由C++语言编写,旨在为web应用提供可扩展的高性能数据存储解决方案
-
MongoDB是以文件的形式来存储的,数据不会丢失
-
MongoDB是一个介于关系型和非关系型数据库之间的产品,是非关系型数据库中最丰富的也最像关系数据库的
-
它支持的数据结构是类似json的bson格式
-
引擎是js引擎(JavaScript代码可以直接写)
-
支持索引,查询
-
也是key-value结构,只不过key不用我们指定,自动生成
-
使用场景
速度:Redis>MongoDB>Oracle/MySQL
完整性:Oracle/MySQL>Redis>MongoDB
单表操作的,不要求完整性的,结构变化多的,量大的冗余性数据多的,价值不是太高的用mongodb
启动服务
安装后启动服务
E:
cd mongodb\bin
mongod --dbpath E:\mongodb\data
新建个窗口
E:
cd mongodb\bin
mongo
做成Windows服务
E:
cd mongodb\bin
mongod --dbpath E:\mongodb\data --logpath E:\mongodb\logs\m.log --serviceName MongoDB --install
启动服务:
net start MongoDB
E:
cd mongodb\bin
mongo
在任意目录下启动
把E:\mongodb\bin添加到环境变量
mongo
命令
库命令
-
查看
show dbs
-
使用
use 库名
-
创建
use 库名
库存在就是使用,不存在就是创建 -
删除
db.dropDatabase()
删除当前use的库
集合
-
查看
show collections
-
创建
当使用db.insert插入数据时,集合不存在时会自动创建 -
删除
db.集合名.drop()
数据操作
- 插入
-
插入单条数据
db.dept.insert({"no":1,"dname":"beijing"})
-
插入多条数据
var objs=[{"no":3,"dname":"chengdu"},{"no":4,"dname":"shenyang"}];
db.dept.insert(objs)
或
for(var i=1;i<10;i++){db.dept.insert({"no":10+i,"dname":"bj"+i});}
- 删除
-
删除单条数据
db.dept.remove({"no":1})
-
删除多条数据
db.dept.remove({})
- 修改
-
全部更新
db.dept.update({"no":1},{"dname":"shanghai"})
-
部分更新
db.dept.update({条件json对象},{$set:要更新的json对象})
db.dept.update({"no":1},{$set:{"dname":"chengdu"} })
- 查询
-
查询所有记录
db.dept.find()
-
查询某条记录:no=1的记录
db.dept.find({"no":1,"dname":"beijing"})
-
查询条件记录
no>1的记录db.dept.find({"no":{$gt:1} })
no>=1的记录db.dept.find({"no":{$gte:1} })
$gt大于,$lt小于,$gte大于等于,$lte小于等于,$ne不等于 -
统计
统计所有记录数量db.dept.count()
统计满足条件记录数db.dept.count({"no":{$gte:11} })