文档章节

mongo-java-driver 的复杂查询

巡山
 巡山
发布于 2016/04/14 20:46
字数 490
阅读 45
收藏 2
点赞 1
评论 0

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数据库连接池比较及前瞻

本文转载自微信公众号「工匠小猪猪的技术世界」 主流数据库连接池 常用的主流开源数据库连接池有C3P0、DBCP、Tomcat Jdbc Pool、BoneCP、Druid等 C3p0: 开源的JDBC连接池,实现了数据源和JND...

渣渣(Charles) ⋅ 04/30 ⋅ 0

Hive在windows端的图形化连接工具

Hive官网上介绍过几种windows端的连接方式,本文主要介绍如何使用Oracle SQL Developer连接hive。 1.下载并解压Oracle SQL Developer 从 http://www.oracle.com/technetwork/developer-tool...

Matthew.L ⋅ 05/29 ⋅ 0

JDBC中Class.forName()的作用

使用JDBC时,我们都会很自然得使用下列语句: java 代码 Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf-8"; ......

村长大神 ⋅ 2014/05/09 ⋅ 0

Multi-Host Connections(三)

ReplicationDriver 针对Master/Slave,Mysql jdbc drivrer : ReplicationDriver https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-master-slave-replication-connection.html http......

墨子Zhai ⋅ 06/06 ⋅ 0

Spring从MongoDB中下载文件之GridFS

问题 之前提到过以GridFS方式上传问题到MongoDB中:Spring保存文件到MongoDB之GridFS支持。现在需要从Mongodb中读取文件,应该怎么处理类? 解决 Maven 注解mongoDbFactory 获取文件流 Note...

亚林瓜子 ⋅ 06/12 ⋅ 0

mybatis系统学习(一)——jdbc基础和mybatis

mybatis系统学习(一)——jdbc基础和mybatis 说明 这一次我所想要做的事,是系统的学习一下mybatis,结合官网文档以及各种网络资料和以往实践经验。 既然是系统的学,就免不了需要了解他所要...

优惠券活动 ⋅ 05/03 ⋅ 0

Java获取MySQL数据库数据

Java获取MySQL数据库数据 工具:Eclipse navicat MySQL MySQL连接驱动:mysql-connector-java-5.1.42.jar 加载驱动: 把下载好的的包导入工程项目中: 导入包 接着创建数据库: 在company的数...

幸运券发放 ⋅ 04/21 ⋅ 0

分享几个JAVA程序员们最容易犯的错误,你中了几枪?

都说Java语言是一门简单的编程语言,基于C++演化而来,剔除了很多C++中的复杂特性,但这并不能保证Java程序员不会犯错。那么对于广大的Java程序员来说,它们最常犯的几个错误都是什么样的呢?...

启示录是真的 ⋅ 05/25 ⋅ 0

mongodb java的疑惑

mongodb的可视化客户端Studio 3T,好像是基于java的吧。我在Studio 3T里面输入mongodb的命令可以直接执行。但是好像没有在mongo 的java驱动里面找到直接运行命令行的方法啊。...

superbone ⋅ 04/16 ⋅ 0

ZK7.0.3中从MongoDB下载文件

问题 在完成Spring从MongoDB中下载文件之GridFS之后,现在需要在ZK7.0.3的ViewModel中下载该文件。 思路 先从MongoDB获取到,以及把转化为ZK的Filedownload能够使用的进行文件下载。 实现 导...

亚林瓜子 ⋅ 06/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Mahout基于内存的DataMode 推荐引擎Demo2

Mahout基于内存的DataMode 推荐引擎Demo2 //注释的部分是基于文件也可以理解为基于日志文件的, //DataModel 可以有很多种,实现abstractDataMode的子类,原则上都可以作为数据源,个人觉得,...

xiaomin0322 ⋅ 17分钟前 ⋅ 0

Docker部署Tomcat及Web应用

一、在线下载docker yum install -y epel-releaseyum install docker-io # 安装dockerchkconfig docker on # 加入开机启动service docker start # 启动docker服务 1 ...

Jeam_ ⋅ 17分钟前 ⋅ 0

研发运营一体化能力成熟度模型

研发运营一体化是指在 IT 软件及相关服务的研发及交付过程中,将应用的需求、开发、测试、部 署和运营统一起来,基于整个组织的协作和应用架构的优化,实现敏捷开发、持续交付和应用运营的无...

stars永恒 ⋅ 22分钟前 ⋅ 0

jQuery缩小放大触发事件

jquery的resize()方法使用 <html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"> var i = 0; $(document).ready(function(){ ......

RobertZou ⋅ 23分钟前 ⋅ 0

eclipse python 搭建

https://jingyan.baidu.com/article/9113f81b68ebce2b3214c7e0.html https://www.cnblogs.com/ZhangRuoXu/p/6397756.html https://blog.csdn.net/zhangphil/article/details/78962159 字符集......

之渊 ⋅ 23分钟前 ⋅ 0

weex,react native,flutter

weex: 一次编写,处处运行 RN: 学一次,到处写(针对安卓,IOS平台特性 各自写,会有很大一部分是一样的代码) 这些方案是否真正的解决了跨平台问题呢?从目前的状况来看,很显然是没有的,因...

东东笔记 ⋅ 29分钟前 ⋅ 0

Spring Cloud微服务分布式云架构-集成项目

Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的。在学习Spring Cloud之前大家必...

明理萝 ⋅ 34分钟前 ⋅ 1

SpringMVC图片上传问题解决

当我们上传图片时一直发现: MultipartFile file = null; if (request instanceof MultipartHttpServletRequest) 匹配不上, 解决方案: 在前端xml加入如下配置代码即可 <!-- 图片上传bean --...

泉天下 ⋅ 36分钟前 ⋅ 0

Spring表达式语言(SpEL)

1、SpEL引用 Spring EL在bean创建时执行其中的表达式。此外,所有的Spring表达式都可以通过XML或注解的方式实现。下面将使用Spring表达式语言(SpEL),注入字符串,整数,Bean到属性。 SpEL的...

霍淇滨 ⋅ 52分钟前 ⋅ 0

Gradle使用阿里云镜像

gradle 生命周期中有一个初始化( Initialization )的过程,这个过程运行在 build script 之前,我们可以在这个地方做一点系统全局的设置,如配置仓库地址。 你可以在以下几个位置实现仓库地址...

明MikeWoo ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部