当前位置:   article > 正文

MongoDB详解--使用Java对MongoDB的分页查询,排序查询,比较运算条件查询_java mongocollection find 分页 排序

java mongocollection find 分页 排序

上一篇文章我们学习了使用Java对MongoDB进行基本的增删改查操作。这次我们进一步来学习如何使用Java对MongoDB进行复杂查询。其中包含对查询出的文档按照某个字段进行排序。对查询出的文档进行条数的限制(适用于分页)以及比较运算符(>,>=,<,<,<=,!=)的使用。下面我将实例代码贴出来,我已经将注释在代码中标注。同学们可以按照这个进行揣摩和理解。

注:

1.为什么在条件排序后需要加上limit限制条数:因为排序后的文档数量可能过大,超过最大缓存32M,大家可以百度来增大缓存,或者像我一样加个limit限制,在不影响业务的前提下。

  1. public class QueryMain {
  2. public static void main(String[] args) {
  3. // 查询限制条数,limit的使用
  4. findDocumentByLimit();
  5. // 查询按照某个条件倒序排列,sort的使用
  6. findDocumentBySort();
  7. // 查询带有比较运算条件>,>=,<,<=,!=的使用
  8. findDocumentByRelation();
  9. }
  10. // 进行分页查询,限制查询出的数据条数
  11. public static void findDocumentByLimit() {
  12. try {
  13. MongoClient mongoClient = MongoUtils.mongoClient;
  14. MongoDatabase database = mongoClient.getDatabase("testDB");
  15. MongoCollection<Document> collection = database.getCollection("testCollection");
  16. // 组装文档
  17. BasicDBObject searchDoc = new BasicDBObject().append("id", 1);
  18. // 进行查询
  19. FindIterable<Document> find = collection.find(searchDoc).limit(10);
  20. for (Document document : find) {
  21. System.out.println(document.getInteger("id") + "\t" + document.getString("name") + "\t"
  22. + document.getString("sex") + "\t" + document.getDate("date"));
  23. }
  24. } catch (Exception e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. /**
  29. * 按照某个条件排序查询,并限制查询的条数。 sort('字段名',num)方法的参数num为排序的方式,1为升序,-1为降序
  30. */
  31. public static void findDocumentBySort() {
  32. try {
  33. MongoClient mongoClient = MongoUtils.mongoClient;
  34. MongoDatabase database = mongoClient.getDatabase("testDB");
  35. MongoCollection<Document> collection = database.getCollection("testCollection");
  36. // 组装文档
  37. BasicDBObject searchDoc = new BasicDBObject().append("id", 1);
  38. // 查询,排序并限制条数(查询的数量太大进行排序会导致内存溢出而报错)
  39. FindIterable<Document> find = collection.find(searchDoc).sort(new Document().append("id", -1)).limit(10);
  40. for (Document document : find) {
  41. System.out.println(document.getInteger("id") + "\t" + document.getString("name") + "\t"
  42. + document.getString("sex") + "\t" + document.getDate("date"));
  43. }
  44. } catch (Exception e) {
  45. e.printStackTrace();
  46. }
  47. }
  48. // 带有比较运算符的条件查询,并限制查询的条数
  49. public static void findDocumentByRelation() {
  50. try {
  51. MongoClient mongoClient = MongoUtils.mongoClient;
  52. MongoDatabase database = mongoClient.getDatabase("testDB");
  53. MongoCollection<Document> collection = database.getCollection("testCollection");
  54. // 组装文档,将关系运算符嵌套在条件中。
  55. // 大于:$gt,大于等于:$gte,小于:$lt,小于等于:$lte,不等于:$ne
  56. BasicDBObject searchDoc = new BasicDBObject().append("id", new Document().append("$lt", 10));
  57. // 查询限制条数(查询的数量太大进行排序会导致内存溢出而报错)
  58. FindIterable<Document> find = collection.find(searchDoc).limit(10);
  59. for (Document document : find) {
  60. System.out.println(document.getInteger("id") + "\t" + document.getString("name") + "\t"
  61. + document.getString("sex") + "\t" + document.getDate("date"));
  62. }
  63. } catch (Exception e) {
  64. e.printStackTrace();
  65. }
  66. }
  67. }

喜欢的朋友点个赞哦~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/56061
推荐阅读
相关标签
  

闽ICP备14008679号