MongoDB 簡單使用
安裝
- 本文采用docker 安裝
- docker 搜索可用的mongo 鏡像;
docker search mongo
2. 拉取鏡像
docker pull mongo:latest
# 冒號後面是版本號,latest 爲最新, 這裏安裝使用mongo 3.6,急命令爲:
docker pull mongo:3.6
- 查看本地鏡像
docker images
5. docker 啓動運行mongo
docker run --name mongo -p 27017:27017 mongo:3.6 -d
# run 執行
# --name mongo 自定義命名,之後可以通過docker start/stop/restart mongo 來操作該服務;
# -p 27017:27017 映射容器服務的 27017 端口到宿主機的 27017 端口。外部可以直接通過 宿主機 ip:27017 訪問到 mongo 的服務
# -d 後臺運行
- 查看運行的服務
docker ps
springboot 使用整合mongo
一. maven 依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
二. spring 配置
spring:
data:
mongodb:
uri: mongodb://127.0.0.1:27017/test
三. 使用案例
- MongoTemplate 使用
@Autowired
private MongoTemplate mongoTemplate;
- 定義表對應 實體類
@Document(collection = "yylive_new_web")//對應數據的表名
@Data
@NoArgsConstructor
public class TestModel {
private String _id;//主鍵id
@Field("name")//對應表中的字段信息
private String name;
@Field("date")
private String date;
@Transient//設置忽略的字段
private String ignore;
}
- 插入/更新
/*
* 更新
*/
public void update(){
Query query = new Query();
query.addCriteria(Criteria.where("_id").is(new ObjectId("57eb870e2954a36d823bcbd6")));
Update update = new Update().set("name", "張三");
UpdateResult updateResult = mongoTemplate.updateFirst(query, update, TestModel.class);
long modifiedCount = updateResult.getModifiedCount();//已完成修改的條數,也就是修改結果
long matchedCount = updateResult.getMatchedCount();//預完成修改的條數
}
/*
* 插入
*/
public void insert(){
TestModel testModel = new TestModel();
testModel.setDate("2018-10-10");
mongoTemplate.insert(testModel);
String objectId = testModel.get_id();
}
- 查詢
/*
* 查詢
*/
public void select(){
Query query = new Query();
query.addCriteria(Criteria.where("name").is("張三"));
query.addCriteria(Criteria.where("date").gte("2018-01-01").lte("2018-10-01"));
query.limit(10);
query.skip(5);
query.with(new Sort(Sort.Direction.ASC, "date"));
List<TestModel> testModels = mongoTemplate.find(query, TestModel.class);
}
ps
- 這裏介紹簡單 使用,後面再更新一些高級查詢,動態切換數據庫等操作.