先上兩段**
**一
query query = new query();
queryafter.addcriteria(criteria.where("id").in(idlist));
queryafter.addcriteria(criteria.where("time").gte(starttime).lte(endtime));
listlists = mongotemplate.find(querybefore,testentity.class);
**二
dbobject query1 = new basicdbobject(); //setup the query criteria 設定查詢條件
query1.put("id", new basicdbobject("$in", idlist));
dbcursor dbcursor =mongotemplate.getcollection("testentity").find(query1);
listlist=new arraylist<>();
while (dbcursor.hasnext())
邏輯很簡單,從testentity集合中根據id列表和開始結束時間進行文件篩選,但是在大資料量下,差別太大了!
比如testentity集合有25萬條文件,查詢出4萬條文件轉換成testentity實體類集合,第一種直接轉換成實體要80秒,而第二種耗時1秒不到!我一度還以為是mongo的問題,後來才定位到是**的坑!
所以資料量大的時候還是用原生查詢手動對映成實體模擬較快!
MongoTemplate聚合查詢
表結構 import org.springframework.data.domain.sort import org.springframework.data.domain.sort.direction import org.springframework.data.domain.sort.orde...
mongoTemplate聚合操作
準備資料 customer 集合,資料型別如下 只是部分資料,資料量太多就不一一列出 1 通過mongotemplate.group方法 public groupbyresultsgroup string inputcollectionname,groupby groupby,classentity...
mongotemplate 動態query拼接
在用mongodb的時候進行分詞搜尋 使用ik分詞器對查詢條件進行分詞比如 男士9分休閒褲。使用mongotemplate 對分詞結果進行查詢。query query newquery criteria criteria newcriteria keywords是需要查詢的內容,對keywords進...