文档章节

mongo-java-driver 的复杂查询

巡山
 巡山
发布于 2016/04/14 20:46
字数 490
阅读 46
收藏 2

mongo的命令,查询语句可以参看  mongodb教程 ,现在我们来看下使用java 实现mongodb的条件操作。

  • (>) 大于 - $gt

  • (<) 小于 - $lt

  • (>=) 大于等于 - $gte

  • (<= ) 小于等于 - $lte

public static void main(String[] args) throws UnknownHostException {
		MongoClient client = new MongoClient();
		DB test = client.getDB("test");
		DBCollection user = test.getCollection("user");
		//查找年龄小于30的user
		BasicDBObject query = new BasicDBObject();
		query.append("age", new BasicDBObject("$lt",30));
		DBCursor cursor = user.find(query);
		while(cursor.hasNext()){
			DBObject ob = cursor.next();
			System.out.println(ob.toString());
		}
	}

   运行结果

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea1"} , "name" : "李四" , "age" : 29.0 , "job" : "php 开发" , "phone" : "18984834098" , "addr" : "广东深圳南山"}

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea4"} , "name" : "钱二" , "age" : 26.0 , "job" : "销售" , "phone" : "18989834968" , "addr" : "广东珠海"}

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea6"} , "name" : "吴奇" , "age" : 17.0 , "job" : "学生" , "phone" : "18735834098" , "addr" : "广东韶关"}

{ "_id" : { "$oid" : "570f8be07cf08b02f5e52ea8"} , "name" : "冯峰" , "age" : 23.0 , "job" : "java 开发" , "phone" : "13689834098" , "addr" : "广东广州越秀"}


   使用正则查询,类似sql中的like

public static void main(String[] args) throws UnknownHostException {
		MongoClient client = new MongoClient();
		DB test = client.getDB("test");
		DBCollection user = test.getCollection("user");
		// 查找 addr中包含深圳的数据
		BasicDBObject query = new BasicDBObject();
		query.append("addr", Pattern.compile(".*深圳.*"));
		DBCursor cursor = user.find(query);
		while (cursor.hasNext()) {
			DBObject ob = cursor.next();
			System.out.println(ob.toString());
		}
	}

结果

    

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea0"} , "name" : "张三" , "age" : 34.0 , "job" : "java 开发" , "phone" : "18989834028" , "addr" : "广东深圳福田"}

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea1"} , "name" : "李四" , "age" : 29.0 , "job" : "php 开发" , "phone" : "18984834098" , "addr" : "广东深圳南山"}

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea2"} , "name" : "王五" , "age" : 38.0 , "job" : "部门经理" , "phone" : "18981834098" , "addr" : "广东深圳罗湖"}

最后看下 Or 查询

public static void main(String[] args) throws UnknownHostException {
		MongoClient client = new MongoClient();
		DB test = client.getDB("test");
		DBCollection user = test.getCollection("user");
		// 查找 addr中包含深圳的数据
		BasicDBObject query = new BasicDBObject();
		BasicDBList list = new BasicDBList();
		list.add(new BasicDBObject("name","李四"));
		list.add(new BasicDBObject("job","java 开发"));
		query.append("$or", list);
		DBCursor cursor = user.find(query);
		while (cursor.hasNext()) {
			DBObject ob = cursor.next();
			System.out.println(ob.toString());
		}
	}

结果

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea0"} , "name" : "张三" , "age" : 34.0 , "job" : "java 开发" , "phone" : "18989834028" , "addr" : "广东深圳福田"}

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea1"} , "name" : "李四" , "age" : 29.0 , "job" : "php 开发" , "phone" : "18984834098" , "addr" : "广东深圳南山"}

{ "_id" : { "$oid" : "570f8be07cf08b02f5e52ea8"} , "name" : "冯峰" , "age" : 23.0 , "job" : "java 开发" , "phone" : "13689834098" , "addr" : "广东广州越秀"}


可以看到其实还是很简单的,只是写条件的是否太啰嗦了


© 著作权归作者所有

共有 人打赏支持
巡山
粉丝 2
博文 20
码字总数 12425
作品 0
深圳
在 Java 中像 Mongo shell 一样使用 Mongo - Jongo

Jongo, 在 Java 中像 Mongo shell 一样使用 Mongo 忠实还原: Jongo 修复了 Mongo 查询语言在 Java 中时不能使用的问题, 复制/粘贴你的 shell 查询就可以了 面向对象: 保存对象到 collecti...

匿名
08/31
0
0
【MongoDB for Java】Java操作MongoDB

开发环境: System:Windows IDE:eclipse、MyEclipse 8 Database:mongoDB 开发依赖库: JavaEE5、mongo-2.5.3.jar、junit-4.8.2.jar Email:hoojo_@126.com Blog:http://blog.csdn.net/IB......

underA
2013/05/15
0
0
java build mongodb driver

git bash here $ cd /c/s $ git clone https://github.com/mongodb/mongo-java-driver.git (记得打开FQ工具,不然很慢) $ cd mongo-java-driver/ 最后是编译,这个工程支持用ant, maven, 或gra......

cyper
2014/05/17
0
0
MongoDB 基本操作与MongoDB for JAVA

一、准备工作 1、 下载mongoDB 下载地址:http://www.mongodb.org/downloads 选择合适你的版本 相关文档:http://www.mongodb.org/display/DOCS/Tutorial 2、 安装mongoDB A、 不解压模式: ...

IT_小翼
2013/08/07
0
1
MongoDB与Java的那些事

1.加载驱动 驱动:mongo-java-driver地址:https://github.com/mongodb/mongo-java-driver/downloads 2.获取连接 (1) Mongo mongo = new Mongo(); //默认形式:127.0.0.1:27017(2) Mong......

段豆豆
2014/01/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SSM框架整合Shiro后的开发

手摸手教你SSM框架整合Shiro后的开发 前面,我们学习了Shiro实现权限管理之表结构设计以及JQuery-Ztree.js使用范例 ,接下来就详细介绍一下SSM框架整合Shiro框架后的开发。同样推荐大家参看张...

TyCoding
27分钟前
1
0
Vivado使用误区与进阶

vivado的相关认知。xilinx的专家写的文章。

whoisliang
33分钟前
1
0
使用Nagios打造专业的业务状态监控

想必各个公司都有部署zabbix之类的监控系统来监控服务器的资源使用情况、各服务的运行状态,是否这种监控就足够了呢?有没有遇到监控系统一切正常确发现项目无法正常对外提供服务的情况呢?本...

37丫37
34分钟前
2
1
自定义操作RxJava 学习笔记

二十三,有点让我想起《风云》里面的剑二十三式 RxJava提供了一套非常强大的操作集。如果计算所有重载次数,Rx上的运算符数量超过300。其中少数运算符必不可少,这意味着没有它们就无法实现R...

woshixin
49分钟前
1
0
mysql视图

测试表:user有id,name,age,sex字段 测试表:goods有id,name,price字段 测试表:ug有id,userid,goodsid字段 视图的作用实在是太强大了,以下是我体验过的好处: 作用一: 提高了重用性,...

郭周园
51分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部