成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java操作mongodb之多表聯(lián)查的實(shí)現(xiàn)($lookup)

瀏覽:146日期:2022-08-15 08:38:10

最近在開(kāi)發(fā)的過(guò)程中,一個(gè)列表的查詢,涉及到了多表的關(guān)聯(lián)查詢,由于持久層使用的是mongodb,對(duì)這個(gè)非關(guān)系型數(shù)據(jù)使用的不是很多,所以在實(shí)現(xiàn)此功能的過(guò)程中出現(xiàn)了不少問(wèn)題,現(xiàn)在此做記錄,一為加深自己的理解,以后遇到此類問(wèn)題可以快速的解決,二為遇到同樣問(wèn)題的小伙伴提供一點(diǎn)小小的幫助。

全文分為兩部分:

使用robo3t編寫(xiě)多表關(guān)系的查詢語(yǔ)句 將編寫(xiě)的查詢語(yǔ)句整合到j(luò)ava項(xiàng)目多表聯(lián)查的查詢語(yǔ)句:

此處使用的為mongodb的robo3t可視化工具,先說(shuō)下需求:從A(假如說(shuō)是日志表)表中查詢出符合條件的數(shù)據(jù),根據(jù)A表中符合條件數(shù)據(jù)查詢B(假如說(shuō)是信息表)表中的數(shù)據(jù),此處也可以將B表的查詢條件加入進(jìn)來(lái)(類型于關(guān)系型數(shù)據(jù)庫(kù)中的臨時(shí)表)

mongo查詢語(yǔ)句:

db.getCollection(’A’).aggregate([ { $lookup:{ from:’B’, localField:’userid’, foreignField:’userid’, as:’userinfo’} }, { $unwind:’$userrole’//把一個(gè)數(shù)組展成多個(gè),就比如說(shuō)按多表連查的userrole數(shù)組中有10數(shù)據(jù),那么用$unwind將把一條帶數(shù)組的數(shù)據(jù)分成10條,這10條數(shù)據(jù)除了userrole不同之外,其它數(shù)據(jù)都是相同的,就類似于一個(gè)展開(kāi)操作 }, { $match:{’username’:’zhangsan’} }, { $group:{ _id:{ userid:’$userid’,//這個(gè)屬性必須是要A表中有的 userrole:’$userrole.roleid’,//A表中有一個(gè)集合,里面存放的對(duì)象有一個(gè)名為roleid的屬性 }, operateTime:{ $last:’$operateTime’//取A表操作時(shí)間最后一條件數(shù) } info:{ $first:’$userinfo’//因?yàn)閿?shù)組的擴(kuò)展,造成了大量的重復(fù)數(shù)據(jù)(只有userrole不同),$first是只取最新的一條 }} }, { $sort:{’operateTime’:-1}//操作時(shí)間倒序,-1:倒序,1:升序 }, { $skip:0//跳過(guò)幾條數(shù)據(jù),也就是從第幾條數(shù)據(jù)開(kāi)始取 }, { $limit:5//每頁(yè)顯示幾條數(shù)據(jù) }]);

java代碼整合查詢語(yǔ)句

//定義分組字段String[] groupIds = new String[] {'$userid','$userrole.roleid'};//定義查詢條件Criteria criteria = new Criteria();//相當(dāng)于where username = 'zhangsan'criteria.and('username').is('zhangsan');//相當(dāng)于 where age not in('15','20')criteria.and('age').nin('15','20');//in操作對(duì)應(yīng)的語(yǔ)句//criteria.and('').in();//定義排序條件Sort sort = new Sort(Direction.DESC,'operateTime');//聯(lián)合查詢總條數(shù),分頁(yè)用Aggregation aggregationCount = Aggregation.newAggregation( Aggregation.match(criteria);//查詢條件 Aggregation.group(groupIds);//分組字段);//聯(lián)合查詢條件Aggregation newAggregation = Aggregation.newAggregation( Aggregation.lookup(’B’,’userid’,’userid’,’userinfo’),//從表名,主表聯(lián)接字段,從表聯(lián)接字段,別名 Aggregation.unwind('$userrole'), Aggregation.match(criteria), Aggregation.group(groupIds) .last('$operateTime').as('operateTime')//取值,起別名 .first('$userinfo').as('info'), Aggregation.sort(sort), Aggregation.skip(pageSize*(pageNumber-1L)),//Long類型的參數(shù) Aggregation.limit(pageSize));//查詢AggregationResults<BasicDBObject> aggregate = mongoTemplate.aggregate( newAggregation ,'A',BasicDBObject.class//A表,是查詢的主表);int count = mongoTemplate.aggregate(aggregationCount ,'A',BasicDBObject.class).getMappedResults().size();//組裝分頁(yè)對(duì)象Page<BasicDBObject> pager = new Page<>(aggregate.getMappedResults(),count,pageSize,pageNumber,page*(pageNumber-1));//對(duì)象轉(zhuǎn)換將BasicDBObject轉(zhuǎn)換成前面需要的類型.....

到此這篇關(guān)于java操作mongodb之多表聯(lián)查的實(shí)現(xiàn)($lookup)的文章就介紹到這了,更多相關(guān)java mongodb多表聯(lián)查內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲v日本v欧美v久久精品| 亚洲主播在线观看| 国产精品全国免费观看高清| 精品亚洲成av人在线观看| 免费亚洲电影| 日韩美女精品在线| 成人黄色av网站在线| 欧美日韩高清影院| 久久精品国产成人一区二区三区 | 91精品国产aⅴ一区二区| 免费成人在线播放| 色视频成人在线观看免| 丝袜诱惑制服诱惑色一区在线观看 | 91丝袜呻吟高潮美腿白嫩在线观看| 欧美日韩视频在线观看一区二区三区 | 日韩欧美一区在线| 国产成人免费视| 欧美一级理论片| 成人一区二区三区| 日韩精品影音先锋| 国产成人av一区二区三区在线 | 韩国精品免费视频| 欧美日本高清视频在线观看| 玖玖九九国产精品| 欧美日韩中字一区| 激情偷乱视频一区二区三区| 欧美日韩激情在线| 国产精品综合一区二区| 欧美日韩一区二区电影| 久久爱另类一区二区小说| 欧美日韩国产首页| 久久99精品久久只有精品| 777色狠狠一区二区三区| 国产成人在线观看免费网站| 日韩一区二区三区电影在线观看 | 久久精品人人做| 欧美福利一区| 欧美激情一区二区三区不卡| 欧美成人日韩| 国产精品嫩草99a| 亚洲国产免费看| 亚洲一区二区三区免费视频| 久久婷婷人人澡人人喊人人爽| 午夜在线成人av| 欧洲一区二区三区在线| 久久疯狂做爰流白浆xx| 7799精品视频| aa级大片欧美| 中文字幕一区二区三区不卡在线| 99国产精品| 亚洲综合无码一区二区| 色噜噜狠狠成人中文综合| 激情成人午夜视频| 欧美一二三区精品| 91免费版在线| 1区2区3区精品视频| 亚洲一区三区视频在线观看| 日韩精品亚洲一区二区三区免费| 欧美网站大全在线观看| 国产成人在线视频免费播放| 国产拍欧美日韩视频二区 | 欧美日韩美女一区二区| 国产福利91精品一区| 国产无一区二区| 国产精品久久久一区二区| 日韩国产在线一| 日韩三级av在线播放| 女人色偷偷aa久久天堂| 亚洲美女视频在线观看| 一本一道久久a久久精品| 免费一级欧美片在线观看| 欧美一卡在线观看| 欧美日韩在线精品| 亚洲电影你懂得| 这里只有精品免费| 欧美人与禽猛交乱配视频| 亚洲五码中文字幕| 欧美日韩激情在线| 欧美日韩一区二区视频在线| 亚洲第一在线综合网站| 在线综合亚洲欧美在线视频| 欧美日韩精品免费观看| 亚洲777理论| 欧美精品一区二区精品网| 影音先锋久久| 精品一区二区免费视频| 国产精品女主播在线观看| 91福利在线免费观看| 成人涩涩免费视频| 一区二区三区**美女毛片| 日韩视频一区二区在线观看| 99热精品在线观看| 国产大片一区二区| 亚洲免费观看高清完整版在线观看熊 | 亚洲精品一区二| 美女视频网站黄色亚洲| 国产日韩亚洲欧美综合| 久久看片网站| 9色porny自拍视频一区二区| 性欧美疯狂xxxxbbbb| 欧美sm极限捆绑bd| 国产精品视频福利| 成人综合婷婷国产精品久久| 一区二区在线免费| 日韩亚洲国产中文字幕欧美| 国产视频亚洲| 不卡的av电影| 天天av天天翘天天综合网| 欧美一区二区高清| 国产精品一区在线播放| 成人激情免费视频| 日韩精品91亚洲二区在线观看| 久久精品一区二区三区不卡| 色www精品视频在线观看| 欧美精品啪啪| 激情综合网最新| 亚洲日本中文字幕区| 欧美一区二区三区系列电影| 一本色道久久综合亚洲精品婷婷 | 雨宫琴音一区二区在线| 国产剧情在线观看一区二区| 亚洲精品成a人| 欧美精品一区二区三区一线天视频| 色av综合在线| 一本色道久久综合亚洲精品不| 成人一区在线看| 爽好久久久欧美精品| 91精品国产色综合久久ai换脸| 亚洲免费影院| 欧美精品一区三区在线观看| 国产一区二区三区av电影| 亚洲小说欧美激情另类| 久久久久国色av免费看影院| 欧美综合久久久| 99在线精品视频在线观看| 91偷拍与自偷拍精品| 激情欧美一区二区三区在线观看| 亚洲欧美日韩国产中文在线| 精品国产一区二区三区久久久蜜月 | 欧美色网站导航| 一本久久知道综合久久| 欧美日本中文| 国产99久久久精品| 五月天激情小说综合| 亚洲欧美日本韩国| 久久精品免视看| 欧美一二三四在线| 欧美日韩高清一区二区三区| 久久久国产精品一区二区中文 | 色综合天天天天做夜夜夜夜做| 国内精品伊人久久久久av一坑| 亚洲精品免费视频| 欧美国产精品中文字幕| 日韩精品一区二区三区蜜臀| 一本色道久久综合亚洲aⅴ蜜桃 | 91精品一区二区三区在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 一区二区av| 日韩图片一区| 欧美午夜不卡| 91美女精品福利| 97精品超碰一区二区三区| 国产成人av影院| 国产乱对白刺激视频不卡| 久久精品噜噜噜成人88aⅴ| 午夜精品爽啪视频| 一区二区不卡在线播放| 一片黄亚洲嫩模| 亚洲欧洲在线观看av| 国产偷v国产偷v亚洲高清| 精品国产污污免费网站入口 | zzijzzij亚洲日本少妇熟睡| 国产精品性做久久久久久| 精品一区二区三区影院在线午夜 | 欧美日韩a区| 午夜久久资源| www.日韩大片| 成人精品鲁一区一区二区| 国产精品一区二区在线播放| 久久av资源站| 精品伊人久久久久7777人| 久久99热狠狠色一区二区| 日本特黄久久久高潮| 免费日韩伦理电影| 久久成人精品无人区| 国精产品一区一区三区mba桃花 | 亚洲视频你懂的| 亚洲伦理在线精品| 国产精品高潮呻吟| 综合激情成人伊人| 亚洲免费视频成人| 亚洲综合一二区| 天使萌一区二区三区免费观看| 日韩av不卡一区二区| 免费在线观看精品| 国产高清不卡二三区| 成人免费av在线| 91丨porny丨中文| 国产一区二区三区四区老人| 亚洲国产欧美国产综合一区|