日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

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

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

全文分為兩部分:

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

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

mongo查詢語句:

db.getCollection(’A’).aggregate([ { $lookup:{ from:’B’, localField:’userid’, foreignField:’userid’, as:’userinfo’} }, { $unwind:’$userrole’//把一個(gè)數(shù)組展成多個(gè),就比如說按多表連查的userrole數(shù)組中有10數(shù)據(jù),那么用$unwind將把一條帶數(shù)組的數(shù)據(jù)分成10條,這10條數(shù)據(jù)除了userrole不同之外,其它數(shù)據(jù)都是相同的,就類似于一個(gè)展開操作 }, { $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//跳過幾條數(shù)據(jù),也就是從第幾條數(shù)據(jù)開始取 }, { $limit:5//每頁顯示幾條數(shù)據(jù) }]);

java代碼整合查詢語句

//定義分組字段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)的語句//criteria.and('').in();//定義排序條件Sort sort = new Sort(Direction.DESC,'operateTime');//聯(lián)合查詢總條數(shù),分頁用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();//組裝分頁對(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)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品乱战久久久| 桃色av一区二区| 亚洲天堂av资源在线观看| 91久久久久| 无码日韩精品一区二区免费| 日本麻豆一区二区三区视频| 国产精品麻豆成人av电影艾秋| 精品亚洲免a| 欧美亚洲国产一区| 久久xxxx精品视频| 国产欧美一区二区三区精品观看| 国产乱码精品一区二区三区四区 | 999久久久国产精品| 亚洲大片在线| 丝袜脚交一区二区| 国产精品久久| 久久三级福利| 亚洲免费成人av在线| 国产精品一站二站| 日韩高清成人| 日韩综合一区二区| 精品国产第一福利网站| 性欧美长视频| 精品国产精品久久一区免费式| 欧美亚洲激情| 91欧美日韩在线| 久久国产日本精品| 久久高清一区| 美女久久久精品| 美女毛片一区二区三区四区| 日韩欧美美女在线观看| 日本不卡免费高清视频在线| 噜噜噜久久亚洲精品国产品小说| 日本久久二区| 日韩久久精品网| 中文字幕一区二区av| 色欧美自拍视频| 乱人伦精品视频在线观看| 国产精品久久久久久久久久妞妞 | 色综合www| 日韩精彩视频在线观看| 日韩中文字幕高清在线观看| 天堂久久一区| 欧美不卡视频| 国产精品xxx在线观看| 欧美.日韩.国产.一区.二区| 国产探花一区在线观看| 欧美~级网站不卡| 欧美aaaaaa午夜精品| 亚洲一区二区成人| 久久久久久婷| 国产图片一区| 亚洲少妇在线| 樱桃视频成人在线观看| 国产精品色在线网站| 日韩精品一二三| 欧美日韩在线二区| 国产一区二区三区精品在线观看| 日韩精品一区第一页| 日韩中文在线电影| 免费一区二区三区在线视频| 日韩专区一卡二卡| 欧美午夜精品一区二区三区电影| 久久国产精品美女| 日本欧美大码aⅴ在线播放| 亚洲少妇一区| 久久亚洲国产| 狠狠久久伊人中文字幕| 奇米777国产一区国产二区| 99精品99| 九九综合在线| 日韩福利一区| 国产成人精品免费视| 欧美日韩一区自拍| 日韩和欧美一区二区三区| 麻豆精品91| 99riav国产精品| 亚洲va在线| 日韩成人三级| 综合日韩av| 成人福利视频| 精品国产a一区二区三区v免费| 日韩在线麻豆| 日韩激情啪啪| 日本欧美一区| 日韩一区网站| 91成人福利| 日韩av电影一区| 亚洲精品视频一二三区| 综合一区二区三区| 日韩欧美2区| 欧美视频二区| 国产精品久久久久久模特| 国产精品探花在线观看| 91大神在线观看线路一区| 日本欧美一区二区| 国产日韩三级| 久久精品99国产国产精| 国产探花一区| 国产suv精品一区二区四区视频 | 四季av一区二区凹凸精品| 国产白浆在线免费观看| 色综合www| 亚洲成人日韩| 蜜桃视频第一区免费观看| 免费人成在线不卡| 日韩高清不卡在线| 久久久久黄色| 日韩免费av| 日韩视频中文| 亚洲欧美网站在线观看| 亚洲精品欧美| 国产精品一区三区在线观看| 精品午夜av| 日韩高清不卡| 欧美日韩国产综合网| 日韩精品视频在线看| 国产精品www.| av免费不卡国产观看| 亚洲一级二级| 亚洲无线观看| 久久成人高清| 亚洲国产专区校园欧美| 日韩中文字幕视频网| 国产精品麻豆成人av电影艾秋 | 久久影院一区二区三区| 日韩免费久久| 一本色道精品久久一区二区三区| 亚洲人亚洲人色久| 美女久久99| 亚洲精品2区| 欧美天堂在线| 波多视频一区| 蜜臀a∨国产成人精品| 欧美交a欧美精品喷水| 麻豆视频在线观看免费网站黄| 在线视频精品| 国产精品久久久久久久久免费高清| 国产成人精品三级高清久久91| 亚洲网站视频| 欧美日韩亚洲一区| 久久久精品久久久久久96| 亚洲日本免费电影| 最近高清中文在线字幕在线观看1| 欧美专区18| 国产aa精品| 日韩精品亚洲一区二区三区免费| 91嫩草亚洲精品| 婷婷五月色综合香五月| 国产精品久久久久av电视剧| 免费视频最近日韩| 日韩一区二区三区免费| 国产欧美日韩一级| 性欧美长视频| xxxxx性欧美特大| 日韩精品中文字幕吗一区二区| 激情国产在线| 91精品国产一区二区在线观看 | 国内精品美女在线观看| 免费看日韩精品| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 另类小说一区二区三区| 亚洲主播在线| 久久久久久亚洲精品美女| 日韩在线观看一区二区| 国产va在线视频| 国产情侣久久| 亚洲欧美视频| 久久麻豆精品| 成人三级高清视频在线看| 日韩精品欧美大片| 中文亚洲免费| 99久精品视频在线观看视频| 免费视频一区二区三区在线观看| 国产亚洲精品久久久久婷婷瑜伽| 成人在线超碰| 国产欧美一区二区三区精品观看| 国产精品人人爽人人做我的可爱| 久久精品国产亚洲aⅴ| 日本91福利区| 亚洲精品影视| 亚洲精品裸体| 国产精品腿扒开做爽爽爽挤奶网站| 欧美激情国产在线| 久久精品国产免费| 麻豆中文一区二区| 国产欧美69| 国产日产一区| 欧美影院视频| 亚洲综合专区| 亚洲一区中文| 婷婷精品进入| 欧美影院三区| av在线资源| 亚洲午夜天堂| 中文av在线全新| 亚洲www免费| 在线观看精品| 日韩在线短视频| 日韩在线欧美|