通过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());
  }
});

												

java操作mongodb——查询数据的更多相关文章

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

    转自:https://www.cnblogs.com/adjk/p/6430074.html 通过find方法查询集合中的文档信息 ---------------------------------- ...

  2. java 操作mongodb查询条件的常用设置

    java操作mongodb进行查询,常用筛选条件的设置如下: 条件列表:BasicDBList condList = new BasicDBList(); 临时条件对象:BasicDBObject c ...

  3. java操作mongodb——更新数据

    Java中可以通过updateOne,updateMany,replaceOne方法进行集合的文档更新.但是 _id 是不能更新的 updateOne只会更新一条数据,即使通过Filters.lt(& ...

  4. java操作mongodb——插入数据

    在mongodb中,表(Table)被称之为集合(Collection),记录(Record)被称为文档(Document) 首先连接到数据库 MongoClient mongoClient = ne ...

  5. 【MongoDB for Java】Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...

  6. JAVA操作MongoDB数据库

    1. 首先,下载MongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.Java操作Mo ...

  7. [转]MongoDB for Java】Java操作MongoDB

    原文地址: MongoDB for Java]Java操作MongoDB 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开 ...

  8. Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html 介绍到了在MongoDB的控制台完成MongoDB的数据操作,通 ...

  9. Mongodb快速入门之使用Java操作Mongodb

    [IT168 专稿]在上一篇文章中,我们学习了Mongodb的安装和初步使用,在本文中,将学习如何使用Java去编程实现对Mongodb的操作. HelloWorld程序 学习任何程序的第一步,都是编 ...

随机推荐

  1. 无法识别的配置节 applicationSettings

    在.NETFramework2.0中,如果发布的虚拟目录程序引用了外部的webservice访问接口,配置文件会出现下边的applicationSettings节点,如 但是访问应用程序时候,可能会出 ...

  2. 话谈c#拷贝

    c#中类型分为值类型和引用类型,值类型对象赋值是本身就是赋的自身的一个副本,而引用类型赋值时则赋的是指向堆上的内存,假如我们不想赋这个地址而想将对象赋过去要怎么做呢?首先要知道拷贝分为浅表拷贝和深层拷 ...

  3. logistic回归 c++ 实现

    logistic回归是统计学习中经典的分类方法,他属于对数线性模型.本博文主要给出logistic的c++实现,具体理论请读者自行google. 本文用到的数据集来自于一个医学网站,具体出处不记得了( ...

  4. Lazy Scheduler

    Lazy Scheduler:我的轻量级任务调度框架   一.背景 工作中经常涉及任务调度,一直都是采用while(true) => if hitted DO => Thread.Slee ...

  5. SQLite数据库操作 (原始操作)

    android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API, 使用该类可以完成对数据进行添加(Create).查询(Retrieve).更新(Update)和删除( ...

  6. C# 添加敏感词

    public class CheckStreamReader { //使用的数据: private static HashSet<string> hash = new HashSet< ...

  7. 使用元组Tuple,返回多个不同类型的值

    记得我在不知道Tuple时,如果想实现调用某个函数时,返回多个值,则需要使用ref或者out了. string name = ""; int result= GetInfo(ref ...

  8. svn签出单个文件

    ) { return new string[]{ string.Format("cd /d \"{0}\"",System.IO.Path.GetDirecto ...

  9. iphone手机用wireshark抓包

    ios连上电脑 查看udid. 启动虚拟接口 rvictl -s 7e65eeaa55a1e43dbdfb44a02f9871f1f304043e 打开mac权限 sudo chmod 644 /de ...

  10. 为什么不能在子类或外部发布C#事件

    为什么不能在子类或外部发布C#事件 背景 一个朋友问了一个问题:“为什么不能在子类或外部发布C#事件?”,我说我不知道,要看看生产的IL代码,下面我们看看. 测试 代码 1 using System; ...