MongoDB
1. 什么是MongoDB
分布式文件存储数据库,属于NoSQL之一
基于BSON格式做数据存储和处理
适合数据项多变的记录,存储结构灵活
便于扩展和使用,支持索引、查询、事务(最新版)
支持Java、PHP、Python等多种语言
2. 启动MongoDB
2.1 启动相关服务
mongod --dbpath C:\mongodb\db --logpath C:\mongodb\log\4.28.log --port 27017
验证服务是否启动
It looks like you are trying to access MongoDB over HTTP on the native driver port.
服务启动成功
2.2 启动客户端
在添加了Path路径之后在cmd中输入
mongo
3. DB相关命令
3.1 显示所有数据库信息
> show dbs;
admin 0.000GB
config 0.000GB
flashexpresslog 0.000GB
local 0.000GB
3.2 切换数据库
使用Use命令, 可以切换到已存在的数据库, 也可以切换到不存在的数据库, 若切换到不存在的数据库, 这个数据库在内存中将要被创建
> use admin
switched to db admin
3.3 查看当前所在的数据库
> db
admin
3.4 创建数据库
MongoDB是弱类型的, 需要在DB中添加集合或文档, 然后数据库会自动创建
3.4.1 通过常见集合创建数据库
> use test
switched to db test
> db.createCollection('collection1')
{ "ok" : 1 }
3.4.2 通过创建文档来创建数据库
没有数据库则创建数据库, 没有collection1集合则创建该集合, 在该集合中插入一个空文档
> db.collection1.insert({})
WriteResult({ "nInserted" : 1 })
3.5 删除数据库
先进入要阐述的数据库, 然后执行对应的删除方法
> db.dropDatabase();
{ "dropped" : "test", "ok" : 1 }
3.6 查看帮助命令
> help
3.7 退出
> exit
4. Collection相关命令
4.1 查看DB中的集合
> show collections;
4.2 创建集合
方式一: 创建一个空集合
> db.createCollection("collect1");
{ "ok" : 1 }
方式二: 插入一个新文档
> db.collection.insert({});
WriteResult({ "nInserted" : 1 })
4.3 删除集合
> db.collection.drop();
true
注意
所有的命令, 都是以db开头的
5. Document相关命令
相当于MySQL中的DML语句: insert, update, delete, dql语句:select
5.1 增加相关
在插入文档时, 如果没有指定id, 系统会自动为我们添加一个主键, 这个主键是ObjectId类型的一个随机数
> db.user.insert({uname:"mao1",age:18});
WriteResult({ "nInserted" : 1 })
> db.user.find();
{ "_id" : ObjectId("5eacc99385c16b1758c67b68"), "uname" : "mao1", "age" : 18 }
指定Id, 插入一条文档
> db.user.insert({_id:1,uname:"mao2",age:28});
WriteResult({ "nInserted" : 1 })
> db.user.find();
{ "_id" : ObjectId("5eacc99385c16b1758c67b68"), "uname" : "mao1", "age" : 18 }
{ "_id" : 1, "uname" : "mao2", "age" : 28 }
插入多条数据就是一个数组
Save命令
也是作为插入使用, 但是跨界, 若指定了ID, 若该ID存在, 则更新该条数据, 否则创建该数据
> db.user.save({_id:13,uname:"mao13",age:38});
WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 13 })
> db.user.save({_id:13,uname:"mao23",age:18});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
5.2 更新相关
待续
5.3 删除相关
待续
5.4 查询相关
待续
6. SpringBoot使用MongoDB
5.1 引入Jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
5.2 配置参数
#mongodb
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=flashexpresslog
5.3 使用MongoDB
@Autowired
private MongoTemplate mongo;
@Override
public void log(int userId, String ip) {
//记录用户登录日志信息
LoginHistory loginHistory = new LoginHistory();
loginHistory.setUserId(userId);
loginHistory.setLoginTime(new Date());
loginHistory.setIp(ip);
mongo.save(loginHistory);
}
}
待更