成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

SpringBoot之MongoTemplate的查詢可以怎么耍

OnlyLing / 2305人閱讀

摘要:學(xué)習(xí)一個(gè)新的數(shù)據(jù)庫(kù),一般怎么下手呢基本的沒(méi)跑了,當(dāng)可以熟練的增刪改查一個(gè)數(shù)據(jù)庫(kù)時(shí),可以說(shuō)對(duì)這個(gè)數(shù)據(jù)庫(kù)算是入門(mén)了,如果需要更進(jìn)一步的話,就需要了解下數(shù)據(jù)庫(kù)的特性,比如索引事物鎖分布式支持等本篇博文為的入門(mén)篇,將介紹一下基本的查詢操作,在中可以

學(xué)習(xí)一個(gè)新的數(shù)據(jù)庫(kù),一般怎么下手呢?基本的CURD沒(méi)跑了,當(dāng)可以熟練的增、刪、改、查一個(gè)數(shù)據(jù)庫(kù)時(shí),可以說(shuō)對(duì)這個(gè)數(shù)據(jù)庫(kù)算是入門(mén)了,如果需要更進(jìn)一步的話,就需要了解下數(shù)據(jù)庫(kù)的特性,比如索引、事物、鎖、分布式支持等

本篇博文為mongodb的入門(mén)篇,將介紹一下基本的查詢操作,在Spring中可以怎么玩

原文可參看: 190113-SpringBoot高級(jí)篇MongoDB之查詢基本使用姿勢(shì)
I. 基本使用 0. 環(huán)境準(zhǔn)備

在正式開(kāi)始之前,先準(zhǔn)備好環(huán)境,搭建好工程,對(duì)于這一步的詳細(xì)信息,可以參考博文: 181213-SpringBoot高級(jí)篇MongoDB之基本環(huán)境搭建與使用

接下來(lái),在一個(gè)集合中,準(zhǔn)備一下數(shù)據(jù)如下,我們的基本查詢范圍就是這些數(shù)據(jù)

1. 根據(jù)字段進(jìn)行查詢

最常見(jiàn)的查詢場(chǎng)景,比如我們根據(jù)查詢user=一灰灰blog的數(shù)據(jù),這里主要會(huì)使用Query + Criteria 來(lái)完成

@Component
public class MongoReadWrapper {
    private static final String COLLECTION_NAME = "demo";

    @Autowired
    private MongoTemplate mongoTemplate;

    /**
     * 指定field查詢
     */
    public void specialFieldQuery() {
        Query query = new Query(Criteria.where("user").is("一灰灰blog"));
        // 查詢一條滿足條件的數(shù)據(jù)
        Map result = mongoTemplate.findOne(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | specialFieldQueryOne: " + result);

        // 滿足所有條件的數(shù)據(jù)
        List ans = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | specialFieldQueryAll: " + ans);
    }
}

上面是一個(gè)實(shí)際的case,從中可以知道一般的查詢方式為:

Criteria.where(xxx).is(xxx)來(lái)指定具體的查詢條件

封裝Query對(duì)象 new Query(criteria)

借助mongoTemplate執(zhí)行查詢 mongoTemplate.findOne(query, resultType, collectionName)

其中findOne表示只獲取一條滿足條件的數(shù)據(jù);find則會(huì)將所有滿足條件的返回;上面執(zhí)行之后,刪除結(jié)果如

query: Query: { "user" : "一灰灰blog" }, Fields: { }, Sort: { } | specialFieldQueryOne: {_id=5c2368b258f984a4fda63cee, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀}
query: Query: { "user" : "一灰灰blog" }, Fields: { }, Sort: { } | specialFieldQueryAll: [{_id=5c2368b258f984a4fda63cee, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀}, {_id=5c3afaf4e3ac8e8d2d39238a, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀3}, {_id=5c3afb1ce3ac8e8d2d39238d, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=18.0}, {_id=5c3b0031e3ac8e8d2d39238e, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=20.0}, {_id=5c3b003ee3ac8e8d2d39238f, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, sign=hello world}]
2. and多條件查詢

前面是只有一個(gè)條件滿足,現(xiàn)在如果是要求同時(shí)滿足多個(gè)條件,則利用org.springframework.data.mongodb.core.query.Criteria#and來(lái)斜街多個(gè)查詢條件

/**
 * 多個(gè)查詢條件同時(shí)滿足
 */
public void andQuery() {
    Query query = new Query(Criteria.where("user").is("一灰灰blog").and("age").is(18));
    Map result = mongoTemplate.findOne(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | andQuery: " + result);
}

刪除結(jié)果如下

query: Query: { "user" : "一灰灰blog", "age" : 18 }, Fields: { }, Sort: { } | andQuery: {_id=5c3afb1ce3ac8e8d2d39238d, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=18.0}
3. or或查詢

and對(duì)應(yīng)的就是or,多個(gè)條件中只要一個(gè)滿足即可,這個(gè)與and的使用有些區(qū)別, 借助org.springframework.data.mongodb.core.query.Criteria#orOperator來(lái)實(shí)現(xiàn),傳參為多個(gè)Criteria對(duì)象,其中每一個(gè)表示一種查詢條件

/**
 * 或查詢
 */
public void orQuery() {
    // 等同于 db.getCollection("demo").find({"user": "一灰灰blog", $or: [{ "age": 18}, { "sign": {$exists: true}}]})
    Query query = new Query(Criteria.where("user").is("一灰灰blog")
            .orOperator(Criteria.where("age").is(18), Criteria.where("sign").exists(true)));
    List result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | orQuery: " + result);

    // 多帶帶的or查詢
    // 等同于Query: { "$or" : [{ "age" : 18 }, { "sign" : { "$exists" : true } }] }, Fields: { }, Sort: { }
    query = new Query(new Criteria().orOperator(Criteria.where("age").is(18), Criteria.where("sign").exists(true)));
    result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | orQuery: " + result);
}

執(zhí)行后輸出結(jié)果為

query: Query: { "user" : "一灰灰blog", "$or" : [{ "age" : 18 }, { "sign" : { "$exists" : true } }] }, Fields: { }, Sort: { } | orQuery: [{_id=5c3afb1ce3ac8e8d2d39238d, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=18.0}, {_id=5c3b003ee3ac8e8d2d39238f, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, sign=hello world}]
query: Query: { "$or" : [{ "age" : 18 }, { "sign" : { "$exists" : true } }] }, Fields: { }, Sort: { } | orQuery: [{_id=5c3afb1ce3ac8e8d2d39238d, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=18.0}, {_id=5c3b003ee3ac8e8d2d39238f, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, sign=hello world}, {_id=5c3b0538e3ac8e8d2d392390, user=二灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, sign=hello world}]
4. in查詢

標(biāo)準(zhǔn)的in查詢case

/**
 * in查詢
 */
public void inQuery() {
    // 相當(dāng)于:
    Query query = new Query(Criteria.where("age").in(Arrays.asList(18, 20, 30)));
    List result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | inQuery: " + result);
}

輸出

query: Query: { "age" : { "$in" : [18, 20, 30] } }, Fields: { }, Sort: { } | inQuery: [{_id=5c3afb1ce3ac8e8d2d39238d, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=18.0}, {_id=5c3b0031e3ac8e8d2d39238e, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=20.0}]
5. 數(shù)值比較

數(shù)值的比較大小,主要使用的是 get, gt, lt, let

/**
 * 數(shù)字類(lèi)型,比較查詢 >
 */
public void compareBigQuery() {
    // age > 18
    Query query = new Query(Criteria.where("age").gt(18));
    List result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | compareBigQuery: " + result);

    // age >= 18
    query = new Query(Criteria.where("age").gte(18));
    result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | compareBigQuery: " + result);
}

/**
 * 數(shù)字類(lèi)型,比較查詢 <
 */
public void compareSmallQuery() {
    // age < 20
    Query query = new Query(Criteria.where("age").lt(20));
    List result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | compareSmallQuery: " + result);

    // age <= 20
    query = new Query(Criteria.where("age").lte(20));
    result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | compareSmallQuery: " + result);
}

輸出

query: Query: { "age" : { "$gt" : 18 } }, Fields: { }, Sort: { } | compareBigQuery: [{_id=5c3b0031e3ac8e8d2d39238e, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=20.0}]
query: Query: { "age" : { "$gte" : 18 } }, Fields: { }, Sort: { } | compareBigQuery: [{_id=5c3afb1ce3ac8e8d2d39238d, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=18.0}, {_id=5c3b0031e3ac8e8d2d39238e, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=20.0}]
query: Query: { "age" : { "$lt" : 20 } }, Fields: { }, Sort: { } | compareSmallQuery: [{_id=5c3afb1ce3ac8e8d2d39238d, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=18.0}]
query: Query: { "age" : { "$lte" : 20 } }, Fields: { }, Sort: { } | compareSmallQuery: [{_id=5c3afb1ce3ac8e8d2d39238d, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=18.0}, {_id=5c3b0031e3ac8e8d2d39238e, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=20.0}]
6. 正則查詢

牛逼高大上的功能

/**
 * 正則查詢
 */
public void regexQuery() {
    Query query = new Query(Criteria.where("user").regex("^一灰灰blog"));
    List result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | regexQuery: " + result);
}

輸出

query: Query: { "user" : { "$regex" : "^一灰灰blog", "$options" : "" } }, Fields: { }, Sort: { } | regexQuery: [{_id=5c2368b258f984a4fda63cee, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀}, {_id=5c3afacde3ac8e8d2d392389, user=一灰灰blog2, desc=帥氣逼人的碼農(nóng)界老秀2}, {_id=5c3afaf4e3ac8e8d2d39238a, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀3}, {_id=5c3afafbe3ac8e8d2d39238b, user=一灰灰blog4, desc=帥氣逼人的碼農(nóng)界老秀4}, {_id=5c3afb0ae3ac8e8d2d39238c, user=一灰灰blog5, desc=帥氣逼人的碼農(nóng)界老秀5}, {_id=5c3afb1ce3ac8e8d2d39238d, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=18.0}, {_id=5c3b0031e3ac8e8d2d39238e, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=20.0}, {_id=5c3b003ee3ac8e8d2d39238f, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, sign=hello world}]
7. 查詢總數(shù)

統(tǒng)計(jì)常用,這個(gè)主要利用的是mongoTemplate.count方法

/**
 * 查詢總數(shù)
 */
public void countQuery() {
    Query query = new Query(Criteria.where("user").is("一灰灰blog"));
    long cnt = mongoTemplate.count(query, COLLECTION_NAME);
    System.out.println("query: " + query + " | cnt " + cnt);
}

輸出

query: Query: { "user" : "一灰灰blog" }, Fields: { }, Sort: { } | cnt 5
8. 分組查詢

這個(gè)對(duì)應(yīng)的是mysql中的group查詢,但是在mongodb中,更多的是通過(guò)聚合查詢,可以完成很多類(lèi)似的操作,下面借助聚合,來(lái)看一下分組計(jì)算總數(shù)怎么玩

/*
 * 分組查詢
 */
public void groupQuery() {
    // 根據(jù)用戶名進(jìn)行分組統(tǒng)計(jì),每個(gè)用戶名對(duì)應(yīng)的數(shù)量
    // aggregate([ { "$group" : { "_id" : "user" , "userCount" : { "$sum" : 1}}}] )
    Aggregation aggregation = Aggregation.newAggregation(Aggregation.group("user").count().as("userCount"));
    AggregationResults ans = mongoTemplate.aggregate(aggregation, COLLECTION_NAME, Map.class);
    System.out.println("query: " + aggregation + " | groupQuery " + ans.getMappedResults());
}

注意下,這里用Aggregation而不是前面的QueryCriteria,輸出如下

query: { "aggregate" : "__collection__", "pipeline" : [{ "$group" : { "_id" : "$user", "userCount" : { "$sum" : 1 } } }] } | groupQuery [{_id=一灰灰blog, userCount=5}, {_id=一灰灰blog2, userCount=1}, {_id=一灰灰blog4, userCount=1}, {_id=二灰灰blog, userCount=1}, {_id=一灰灰blog5, userCount=1}]
9. 排序

sort,比較常見(jiàn)的了,在mongodb中有個(gè)有意思的地方在于某個(gè)字段,document中并不一定存在,這是會(huì)怎樣呢?

/**
 * 排序查詢
 */
public void sortQuery() {
    // sort查詢條件,需要用with來(lái)銜接
    Query query = Query.query(Criteria.where("user").is("一灰灰blog")).with(Sort.by("age"));
    List result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | sortQuery " + result);
}

輸出結(jié)果如下,對(duì)于沒(méi)有這個(gè)字段的document也被查出來(lái)了

query: Query: { "user" : "一灰灰blog" }, Fields: { }, Sort: { "age" : 1 } | sortQuery [{_id=5c2368b258f984a4fda63cee, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀}, {_id=5c3afaf4e3ac8e8d2d39238a, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀3}, {_id=5c3b003ee3ac8e8d2d39238f, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, sign=hello world}, {_id=5c3afb1ce3ac8e8d2d39238d, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=18.0}, {_id=5c3b0031e3ac8e8d2d39238e, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=20.0}]
10. 分頁(yè)

數(shù)據(jù)量多的時(shí)候,分頁(yè)查詢比較常見(jiàn),用得多就是limit和skip了

/**
 * 分頁(yè)查詢
 */
public void pageQuery() {
    // limit限定查詢2條
    Query query = Query.query(Criteria.where("user").is("一灰灰blog")).with(Sort.by("age")).limit(2);
    List result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | limitPageQuery " + result);


    // skip()方法來(lái)跳過(guò)指定數(shù)量的數(shù)據(jù)
    query = Query.query(Criteria.where("user").is("一灰灰blog")).with(Sort.by("age")).skip(2);
    result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
    System.out.println("query: " + query + " | skipPageQuery " + result);
}

輸出結(jié)果表明,limit用來(lái)限制查詢多少條數(shù)據(jù),skip則表示跳過(guò)前面多少條數(shù)據(jù)

query: Query: { "user" : "一灰灰blog" }, Fields: { }, Sort: { "age" : 1 } | limitPageQuery [{_id=5c2368b258f984a4fda63cee, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀}, {_id=5c3afaf4e3ac8e8d2d39238a, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀3}]
query: Query: { "user" : "一灰灰blog" }, Fields: { }, Sort: { "age" : 1 } | skipPageQuery [{_id=5c3b003ee3ac8e8d2d39238f, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, sign=hello world}, {_id=5c3afb1ce3ac8e8d2d39238d, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=18.0}, {_id=5c3b0031e3ac8e8d2d39238e, user=一灰灰blog, desc=帥氣逼人的碼農(nóng)界老秀6, age=20.0}]
11. 小結(jié)

上面給出的一些常見(jiàn)的查詢姿勢(shì),當(dāng)然并不全面,比如我們?nèi)绻枰樵僤ocument中的部分字段怎么辦?比如document內(nèi)部結(jié)果比較復(fù)雜,有內(nèi)嵌的對(duì)象或者數(shù)組時(shí),嵌套查詢可以怎么玩?索引什么的又可以怎么利用起來(lái),從而優(yōu)化查詢效率?如何通過(guò)傳說(shuō)中自動(dòng)生成的_id來(lái)獲取文檔創(chuàng)建的時(shí)間戳?

先留著這些疑問(wèn),后面再補(bǔ)上

II. 其他 0. 項(xiàng)目

工程:spring-boot-demo

module: mongo-template

相關(guān)博文: 181213-SpringBoot高級(jí)篇MongoDB之基本環(huán)境搭建與使用

1. 一灰灰Blog

一灰灰Blog個(gè)人博客 https://blog.hhui.top

一灰灰Blog-Spring專(zhuān)題博客 http://spring.hhui.top

一灰灰的個(gè)人博客,記錄所有學(xué)習(xí)和工作中的博文,歡迎大家前去逛逛

2. 聲明

盡信書(shū)則不如,以上內(nèi)容,純屬一家之言,因個(gè)人能力有限,難免有疏漏和錯(cuò)誤之處,如發(fā)現(xiàn)bug或者有更好的建議,歡迎批評(píng)指正,不吝感激

微博地址: 小灰灰Blog

QQ: 一灰灰/3302797840

3. 掃描關(guān)注

一灰灰blog

知識(shí)星球

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19461.html

相關(guān)文章

  • SpringBootMongoTemplate查詢可以怎么

    摘要:學(xué)習(xí)一個(gè)新的數(shù)據(jù)庫(kù),一般怎么下手呢基本的沒(méi)跑了,當(dāng)可以熟練的增刪改查一個(gè)數(shù)據(jù)庫(kù)時(shí),可以說(shuō)對(duì)這個(gè)數(shù)據(jù)庫(kù)算是入門(mén)了,如果需要更進(jìn)一步的話,就需要了解下數(shù)據(jù)庫(kù)的特性,比如索引事物鎖分布式支持等本篇博文為的入門(mén)篇,將介紹一下基本的查詢操作,在中可以 學(xué)習(xí)一個(gè)新的數(shù)據(jù)庫(kù),一般怎么下手呢?基本的CURD沒(méi)跑了,當(dāng)可以熟練的增、刪、改、查一個(gè)數(shù)據(jù)庫(kù)時(shí),可以說(shuō)對(duì)這個(gè)數(shù)據(jù)庫(kù)算是入門(mén)了,如果需要更進(jìn)一步的...

    Ethan815 評(píng)論0 收藏0
  • SpringBoot高級(jí)篇MongoDB如何新增文檔

    摘要:本篇博文為的中一篇,前面介紹簡(jiǎn)單的查詢使用,這一篇重點(diǎn)則放在插入數(shù)據(jù)基本使用首先是準(zhǔn)備好基本環(huán)境,可以參考博文高級(jí)篇之基本環(huán)境搭建與使用高級(jí)篇之查詢基本使用姿勢(shì)新增一條數(shù)據(jù)一個(gè)基本數(shù)據(jù)稱(chēng)為,和不一樣,沒(méi)有強(qiáng)制約束哪些字段,可以隨 本篇博文為mongodb的curd中一篇,前面介紹簡(jiǎn)單的查詢使用,這一篇重點(diǎn)則放在插入數(shù)據(jù); I. 基本使用 首先是準(zhǔn)備好基本環(huán)境,可以參考博文 1812...

    sherlock221 評(píng)論0 收藏0
  • SpringBoot高級(jí)篇MongoDB修改基本使用姿勢(shì)

    摘要:原文高級(jí)篇之修改基本使用姿勢(shì)本篇依然是中的一篇,主要介紹的更新,主要內(nèi)容如下常見(jiàn)類(lèi)型成員的修改數(shù)組類(lèi)型成員的增刪改類(lèi)型成員的增刪改基本使用首先是準(zhǔn)備好基本環(huán)境,可以參考博文高級(jí)篇之基本環(huán)境搭建與使用高級(jí)篇之查詢基本使用姿勢(shì)在開(kāi) 原文: 190218-SpringBoot高級(jí)篇MongoDB之修改基本使用姿勢(shì) 本篇依然是MongoDB curd中的一篇,主要介紹document的更新,...

    lauren_liuling 評(píng)論0 收藏0
  • 雙刃劍MongoDB學(xué)習(xí)和避坑

    摘要:雙刃劍的學(xué)習(xí)和避坑是一把雙刃劍,它對(duì)數(shù)據(jù)結(jié)構(gòu)的要求并不高。第二某些銀行顯示的金額不是實(shí)時(shí)的。第三步創(chuàng)建封裝類(lèi)的管理類(lèi),針對(duì)不同的實(shí)體類(lèi),需要配置不同的。 雙刃劍MongoDB的學(xué)習(xí)和避坑 MongoDB 是一把雙刃劍,它對(duì)數(shù)據(jù)結(jié)構(gòu)的要求并不高。數(shù)據(jù)通過(guò)key-value的形式存儲(chǔ),而value的值可以是字符串,也可以是文檔。所以我們?cè)谑褂玫倪^(guò)程中非常方便。正是這種方便給我們埋下了一顆顆...

    everfight 評(píng)論0 收藏0
  • Spring Boot 中使用 MongoDB 增刪改查

    摘要:聲明構(gòu)造函數(shù),作用是把從數(shù)據(jù)庫(kù)取出的數(shù)據(jù)實(shí)例化為對(duì)象。該構(gòu)造函數(shù)傳入的值為從中取出的數(shù)據(jù)省略接口提供增刪改查接口實(shí)現(xiàn)提供增刪改查接口實(shí)現(xiàn)提供了一個(gè)類(lèi)似于的設(shè)計(jì)的類(lèi)。 本文快速入門(mén),MongoDB 結(jié)合SpringBoot starter-data-mongodb 進(jìn)行增刪改查 1、什么是MongoDB ? MongoDB 是由C++語(yǔ)言編寫(xiě)的,是一個(gè)基于分布式文件存儲(chǔ)的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng)。...

    ranwu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<