MongoDB 簡單使用(1)

MongoDB 簡單使用

安裝

  • 本文采用docker 安裝
  1. docker 搜索可用的mongo 鏡像;
docker search mongo

在這裏插入圖片描述
2. 拉取鏡像

docker pull mongo:latest
# 冒號後面是版本號,latest 爲最新, 這裏安裝使用mongo 3.6,急命令爲:
docker pull mongo:3.6
  1. 查看本地鏡像
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 後臺運行
  1. 查看運行的服務
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

  • 這裏介紹簡單 使用,後面再更新一些高級查詢,動態切換數據庫等操作.
發佈了27 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章