1. 程式人生 > >讓mongoDB也能使用in查詢,提高查詢速度

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

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 = new 
BookChapterMongo();
List<Long> ids = new ArrayList<>();

for(BkBookDto bkid:poList) {
    ids.add(bkid.getId());
}

Query query = new Query();
//Criteria c = new Criteria();
query.addCriteria(Criteria.where("bid").in(ids));
sum = Integer.valueOf(mongoTemplate.count(query, BookChapterMongo.class
)+"");

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

測試的ids


大小為335,沒有報異常,說明在這個範圍內還是可以的。歡迎大家提出關於in查詢時所承受範圍的意見。