MongoDB 入坑

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

验证服务是否启动

访问 http://localhost: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);
    }
}

待更

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容