讓mongoDB也能使用in查詢,提高查詢速度

2021-08-07 08:58:53 字數 1089 閱讀 3872

mongodb使用in查詢

在mongodb查詢,是在springboot中使用的mongodb,結合業務需求,需要查詢多個id的記錄,改寫了mongodb的查詢方法,讓其實現了像mysql中in查詢一樣的操作。

首先是引用了mongotemplate 

封裝類,這是org.springframework.data.mongodb.core.mongotemplate下的乙個實現類。同時也使用了criteria 類,是org.springframework.data.mongodb.core.query.criteria;

下面的乙個封裝類。還是具體看一下怎麼實現的

in查詢吧。

bookchaptermongo bookchapterpo =newbookchaptermongo();
listids =newarraylist<>();
for(bkbookdto bkid:polist)

query query =newquery();

//criteria c =newcriteria();

query.addcriteria(criteria.where("bid").in(ids));

sum = integer.valueof(mongotemplate.count(query, bookchaptermongo.class)+"");

主要是乙個ids獲取所有符合條件的id,組裝成陣列的形式,bid是查詢條件,bookchaptermongo是對應mongodb的實體類。在這裡是做了乙個統計。效率還是挺高的。但是in查詢應該是對大小有限制,由於數量有限制,我這裡in的範圍是三百多,這個測試還沒有做是具體in所承受的範圍是多大。

測試的ids

MongoDB的聚合功能使用

mongodb的聚合功能的使用 我在專案中主要使用的資料庫是mongodb,版本為2.4.6,目前最新的版本為3.0 還沒有使用用,據說增加了很多新功能及改進 很久以前完成了乙個報表開發任務,用到了聚合,這裡就簡單的做了個記錄,也分享給其他人。projectmonthdata表 習慣稱集合為表 中儲...

PLsql 不安裝Oracle也能使用

2 解壓到本地任意個碟符 d software oracle oracle client instantclient 11 2 3 在 d software oracle oracle client下新建 network admin 資料夾,在資料夾下新建 tnsnames.ora 檔案 4 配置如...

不註冊驅動也能使用JDBC?

mars idea 的 不需要使用class.forname 註冊資料庫的驅動也能載入到驅動 原址 我們在使用jdbc運算元據庫時,一般會先註冊驅動,常用的方法就是使用 class.forname com.mysql.jdbc.driver 進行驅動的載入,但是最近卻發現不需要使用class.for...