第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【API知識(shí)】MongoTemplate非映射方式操作Document

標(biāo)簽:
深度學(xué)習(xí)

前言

  我是MongoDB小白,刚开始学。不过,我猜大多数使用MongoDB的,都是采用映射方式处理的,即需要有定义好的用于映射的实体类。但是这样的话,如果表的结构在未来可能频繁变动,增删字段,甚至添加新的数据表。那么这种方式就不太好用了。这时候就需要用非映射的方式处理。

映射方式操作Document

  这种方式最常见,一般就是预定义一些映射的实体类,然后打上@Ducument注解。在使用MongoTemplate的查询文档的时候,一般就是根据查询语句创建一个Query对象,然后用MongoTemplate.find(query, entityClass)这样的方式,就可以返回对应的实体对象集合。这样的例子非常多,我这里就不贴代码了。

非映射方式操作Document

  非映射方式操作Document,就是不需要预定义实体类,也就是没有实体类。我们只需要JSON数据就可以了。而刚好Document对象有提供toJson方法,可以返回一个JSON字符串。非映射方式不能直接用MongoTemplate直接find,而是要先获取集合对象,然后,在集合内部,相当于在表内部查询。

 例子如下:

复制代码

public String findTest() {        //1.获取集合对象
        MongoCollection<Document> collection = mongoTemplate.getCollection("test");        //2.创建用于查询的BSON对象
        Bson bson = eq("field", "value");        //3.利用bson条件查询结果
        FindIterable<Document> documents = collection.find(bson);        //4.将结果拼接成json数组
        StringBuilder sb = new StringBuilder();
        sb.append("[");        for(Document document : documents) {
            sb.append(document.toJson() + ",\n");
        }
        sb.append("]");        return sb.toString();
    }

复制代码

可用的工具包 

  其中,eq()方法是Mongo Spring Boot整合包提供的。它表示条件:当文档的某个字段等于某个值的时候,文档被选中。这个方法是Filters的静态方法,如果要直接调用,可以通过静态引入:

import static com.mongodb.client.model.Filters.*;

这个类中,有很多用于过滤的方法。如eq(),ne(),gt(),lt(),in()等等更查询条件有关的。

如果你需要用于更新的方法,那么你可导入Updaters的静态方法,如set(),unSet(),rename()等等。

例子:

//注意key必须是字符串,而value可以是任意类型Bson udpateBson = set("key", "value");

以上就是把文档的某个字段的值改为设定的值。

注:这两个类都来自mongodb-driver-core.jar包的com.mongodb.client.model目录下,想看更多功能可自行查看。

如何结合查询和更新的bson来执行一个更新操作呢?

  前面的更新bson,只说明了怎么更新,而没有说明要更新谁。而一个更新操作,必然包含查询,和修改两个操作。那么如何整合两个bson来使用呢?案例如下:

复制代码

//查询条件Bson searchBson = eq("job", "programmer");//修改操作Bson uddateBson = set("label", "666");//修改所有符合条件的文档collection.updateMany(searchBson, uddateBson);

复制代码

原文出处:https://www.cnblogs.com/longfurcat/p/10093281.html  

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消