前言:空余时间研究下MongoDB,它作为典型的NoSQL数据库,存储JSON格式的数据十分方便,本文将会记录安装和使用的部分方法。

一. 安装与配置

安装过程略,配置远程访问:

1)先配置管理员用户

1
2
3
> use admin #进入admin数据库
switched to db admin
> db.createUser({user:"admin",pwd:"admin",roles:[{role:"root", db:"admin"}]})

2)配置文件修改

1
2
3
4
5
net:
port: 27017
bindIp: 0.0.0.0 # 要远程访问注意改这里
security:
authorization: enabled # 如果忘记密码把这行注释掉,然后改用户

二. 在SpringBoot中使用

配置

1)pom.xml中添加依赖

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

2)配置application.yml

1
2
3
4
5
6
7
8
9
spring:
data:
mongodb:
authentication-database: admin
database: test
username: admin
password: admin123456
host: 127.0.0.1
port: 27017

映射

只需要在对应实体类上加注解:

1
@Document(collation = "user")    // collation值为集合名

使用

1)直接存储 JSONObject

1
2
3
4
5
6
@Autowired
private MongoTemplate mongoTemplate;

public void test(){
mongoTemplate.save(JSONObject对象, 集合名);
}

三. 原生操作

权限操作

1
2
3
4
5
6
7
8
/*  切换到 admin 用户下  */
use admin
/* 查看当前的用户 */
db.system.users.find()
/* 删除现有用户 */
db.system.users.remove({})
/* 创建新用户 */
db.createUser({user:"root",pwd:"test123",roles:[{role:"root", db:"admin"}]})

原生查询

1
2
3
4
5
/* 查询指定key-value */
db.getCollection("CET4_2").find({"content.word.wordId":"CET4_2_1"}).pretty()

/* 查询某字段去重后总数 */
db.getCollection('CET4_2').distinct("content.word.wordId").length

未完待续