mongo 數據庫查詢spring 查詢

查詢,無論是關係型數據庫還是mongodb這種nosql,都是使用比較多的,大部分操作都是讀的操作。
mongodb的查詢方式很多種,下面只列了一些常用的,比如:
1.=查詢
2.模糊查詢
3.大於小於範圍查詢
4.in查詢
5.or查詢
6.查詢一條,查詢全部
7.自己慢慢學習...

根據作者查詢所有符合條件的數據,返回List<Article>

Query query = Query.query(Criteria.where("author").is("yinjihuan"));
List<Article> articles = mongoTemplate.find(query, Article.class);

只查詢符合條件的第一條數據,返回Article對象

query = Query.query(Criteria.where("author").is("yinjihuan"));
Article article = mongoTemplate.findOne(query, Article.class);

查詢集合中所有數據,不加條件

articles = mongoTemplate.findAll(Article.class);

查詢符合條件的數量

query = Query.query(Criteria.where("author").is("yinjihuan"));
long count = mongoTemplate.count(query, Article.class);

根據主鍵ID查詢

article = mongoTemplate.findById(new ObjectId("57c6e1601e4735b2c306cdb7"), Article.class);

in查詢

List<String> authors = Arrays.asList("yinjihuan", "jason");
query = Query.query(Criteria.where("author").in(authors));
articles = mongoTemplate.find(query, Article.class);

ne(!=)查詢

query = Query.query(Criteria.where("author").ne("yinjihuan"));
articles = mongoTemplate.find(query, Article.class);

lt(<)查詢訪問量小於10的文章

query = Query.query(Criteria.where("visitCount").lt(10));
articles = mongoTemplate.find(query, Article.class);

範圍查詢,大於5小於10

query = Query.query(Criteria.where("visitCount").gt(5).lt(10));
articles = mongoTemplate.find(query, Article.class);

模糊查詢,author中包含a的數據

query = Query.query(Criteria.where("author").regex("a"));
articles = mongoTemplate.find(query, Article.class);

數組查詢,查詢tags裏數量爲3的數據

query = Query.query(Criteria.where("tags").size(3));
articles = mongoTemplate.find(query, Article.class);

or查詢,查詢author=jason的或者visitCount=0的數據

query = Query.query(Criteria.where("").orOperator(
    Criteria.where("author").is("jason"),
    Criteria.where("visitCount").is(0)));
articles = mongoTemplate.find(query, Article.class);


作者:尹吉歡
鏈接:https://www.jianshu.com/p/502dbdb7613e
來源:簡書
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章