• 8. java操作mongodb——查询数据


    转自:https://www.cnblogs.com/adjk/p/6430074.html

    通过find方法查询集合中的文档信息

    --------------------------------------------------------

    find()  

    查询所有文档信息,返回FindIterable<Document>

    我们可以通过FindIterable的forEach方法取得document信息

    MongoClient mongoClient = new MongoClient();

    MongoDatabase db = mongoClient.getDatabase("test");
    MongoCollection<Document> doc = db.getCollection("text");

    FindIterable<Document> iter = doc.find();
    iter.forEach(new Block<Document>() {
      public void apply(Document _doc) {
        System.out.println(_doc.toJson());
      }
    });

    --------------------------------------------------------------------

    条件查询

    new Document( <field>, <value> )

    field为查询字段,value为查询值,也可以通过过滤器Filters,Filters提供了一系列查询条件的静态方法

    相等 — =

    FindIterable<Document> iter = doc.find(new Document("name","张三"));

    // 或者  FindIterable<Document> iter = doc.find(new Document("age",new Document("$eq",24)));

    //或者   FindIterable<Document> iter = doc.find(Filters.eq("name", "张三"));

    iter.forEach(new Block<Document>() {
      public void apply(Document _doc) {
        System.out.println(_doc.toJson());
      }
    });

    不等 — !=

    // FindIterable<Document> iter = doc.find(new Document("age",new Document("$ne",24)));
    FindIterable<Document> iter = doc.find(Filters.ne("name", "张三"));
    iter.forEach(new Block<Document>() {
      public void apply(Document _doc) {
        System.out.println(_doc.toJson());
      }
    });

    大于 — >

    FindIterable<Document> iter = doc.find(new Document("age",new Document("$gt",22)));

    //或者   FindIterable<Document> iter = doc.find(Filters.gt("age",22));

    iter.forEach(new Block<Document>() {
      public void apply(Document _doc) {
        System.out.println(_doc.toJson());
      }
    });

    大于等于 — >=

    用法同上,符号为$gte

    小于 — <

    FindIterable<Document> iter1 = doc.find(new Document("age",new Document("$lt",22)));

    //或者   FindIterable<Document> iter = doc.find(Filters.lt("age",22));
    iter1.forEach(new Block<Document>() {
      public void apply(Document _doc) {
        System.out.println(_doc.toJson());
      }
    });

    小于等于 — <=

    用法同上,符号为$lte

    且 — and

    FindIterable<Document> iter1 = doc.find(new Document("age",20).append("name", "张三"));
    //或者 FindIterable<Document> iter1 = doc.find(Filters.and(Filters.eq("name", "张三"),Filters.lt("age", 30)));
    iter1.forEach(new Block<Document>() {
      public void apply(Document _doc) {
        System.out.println(_doc.toJson());
      }
    });

    或者 — or

    List<Document> list = new ArrayList<Document>();
    list.add(new Document("name","张三"));
    list.add(new Document("age",24));
    FindIterable<Document> iter1 = doc.find(new Document("$or", list));
    // FindIterable<Document> iter1 = doc.find(Filters.and(Filters.eq("name", "张三"),Filters.lt("age", 30)));
    iter1.forEach(new Block<Document>() {
      public void apply(Document _doc) {
        System.out.println(_doc.toJson());
      }
    });

    存在 — in

    // List<String> list = new ArrayList<String>();
    // list.add("张三");
    // list.add("李四");
    // FindIterable<Document> iter = doc.find(new Document("name",new Document("$in",list)));
    FindIterable<Document> iter = doc.find(Filters.in("name", "张三","李四","王五"));
    iter.forEach(new Block<Document>() {
      public void apply(Document _doc) {
        System.out.println(_doc.toJson());
      }
    });

    不存在 — not in

    用法同上,符号为$nin

    排序 — sort

    FindIterable<Document> iter1 = doc.find().sort(new Document("age",1).append("phone", 1));

    //FindIterable<Document> iter1 = doc.find().sort(Sorts.orderBy(Sorts.ascending("age"),Sorts.descending("phone")));
    iter1.forEach(new Block<Document>() {
      public void apply(Document _doc) {
        System.out.println(_doc.toJson());
      }
    });

  • 相关阅读:
    MapReduce中压缩的使用体验
    weblogic 12安装及和Eclipse的整合
    常用正则表达式补充1
    C# 中利用 Conditional 定义条件方法
    金额文本框
    C#中的List<string>泛型类示例
    HTML ID和Name属性的区别
    CSS的position:fixed的使用
    C# 匿名方法和Lambda表达式
    C#设置开机启动程序
  • 原文地址:https://www.cnblogs.com/sharpest/p/7832771.html
Copyright © 2020-2023  润新知