浅谈java实现mongoDB的多条件查询

需求:在mongDB客户端,我们很容易实现多条件查询,那么使用java操作时怎么实现呢?

客户端代码:

db.url.find({index:4,status:0,url:{$regex:"2016"}}).limit(1)

java代码主要用到DBObject

BasicDBObject doc5 = new BasicDBObject();
 doc5.put("index", 3);
 doc5.put("status", 0);
 //doc5.put("url", "{$regex:'2016'}");错误的写法
 BasicDBObject doc3 = new BasicDBObject();
 doc3.put("$regex", "2016");
 doc5.put("url", doc3);
 FindIterable<document> find = col.find(doc5);</document>

总结

以上就是本文关于java实现mongoDB的多条件查询的全部内容,希望对大家有所帮助。有什么问题可以留言,小编会及时回复大家的,希望大家多多支持我们。

(0)

相关推荐

  • java 中mongodb的各种操作查询的实例详解

    java 中mongodb的各种操作查询的实例详解 一. 常用查询: 1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is  精确匹配,模糊匹配 使用regex...) public PageUrl getByUrl(String url) { return findOne(new Query(Criteria.where("url").is(url)),PageUrl.class); } 2. 查询多条数据:linkUrl.id 属于分级查询 public Lis

  • Java操作Mongodb数据库实现数据的增删查改功能示例

    本文实例讲述了Java操作Mongodb数据库实现数据的增删查改功能.分享给大家供大家参考,具体如下: 首先,我们在windows下安装mongodb数据库,安装教程可查看前面一篇文章:http://www.jb51.net/article/85605.htm 代码如下: package io.mogo; import java.util.Map; import org.apache.commons.lang3.StringUtils; import com.mongodb.BasicDBObj

  • mongodb分片技术_动力节点Java学院整理

    在mongodb里面存在另一种集群,就是分片技术,当数据量达到T级别的时候,我们的磁盘,内存就吃不消了,针对这样的场景我们该如何应对. 一:分片 mongodb采用将集合进行拆分,然后将拆分的数据均摊到几个片上的一种解决方案. 下面我对这张图解释一下: 人脸:代表客户端,客户端肯定说,你数据库分片不分片跟我没关系,我叫你干啥就干啥,没什么好商量的. mongos: 首先我们要了解"片键"的概念,也就是说拆分集合的依据是什么?按照什么键值进行拆分集合.... 好了,mongos就是一个路

  • mongodb主从复制_动力节点Java学院整理

    从这一篇开始我们主要讨论mongodb的部署技术. 我们知道sql server能够做到读写分离,双机热备份和集群部署,当然mongodb也能做到,实际应用中我们不希望数据库采用单点部署,如果碰到数据库宕机或者被毁灭性破坏那是多么的糟糕. 一:主从复制 1: 首先看看模型图 2: 从上面的图形中我们可以分析出这种架构有如下的好处: <1> 数据备份. <2> 数据恢复. <3> 读写分离. 3:下面我们就一一实践 实际应用中我们肯定是多服务器部署,限于自己懒的装虚拟机,

  • mongodb运维_动力节点Java学院整理

    我们以管理员的视角来看mongodb,作为一名管理员,我们经常接触到的主要有4个方面: 1.  安装部署 2.  状态监控 3.  安全认证 4.  备份和恢复, 下面我们就一点一点的讲解. 一:安装部署 我之前的文章都是采用console程序来承载,不过在生产环境中这并不是最佳实践,谁也不愿意在机器重启后满地找牙似找mongodb,在mongodb里面提供了一个叫做"服务寄宿"的模式,我想如果大家对wcf比较熟悉的话很容易听懂.好了,我们实践一下,这里我开一下D盘里面的mongodb

  • mongodb聚合_动力节点Java学院整理

    今天跟大家分享一下mongodb中比较好玩的知识,主要包括:聚合,游标. 一:聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce. <1> count count是最简单,最容易,也是最常用的聚合工具,它的使用跟我们C#里面的count使用简直一模一样. <2> distinct 这个操作相信大家也是非常熟悉的,指定了谁,谁就不能重复,直接上图. <3> group 在mongodb里面做group操作有点小

  • mongodb增删改查详解_动力节点Java学院整理

    仔细观察"划线区域"的信息,发现db文件夹下有一个类似的"lock file"阻止了mongodb的开启,接下来我们要做的就是干掉它,之后,开启成功,关于mongodb的管理方式将在后续文章分享. 一: Insert操作 上一篇也说过,文档是采用"K-V"格式存储的,如果大家对JSON比较熟悉的话,我相信学mongodb是手到擒来,我们知道JSON里面Value 可能是"字符串",可能是"数组",又有可能是

  • 浅谈java实现mongoDB的多条件查询

    需求:在mongDB客户端,我们很容易实现多条件查询,那么使用java操作时怎么实现呢? 客户端代码: db.url.find({index:4,status:0,url:{$regex:"2016"}}).limit(1) java代码主要用到DBObject BasicDBObject doc5 = new BasicDBObject(); doc5.put("index", 3); doc5.put("status", 0); //doc5

  • 浅谈Java并发编程之Lock锁和条件变量

    简单使用Lock锁 Java 5中引入了新的锁机制--java.util.concurrent.locks中的显式的互斥锁:Lock接口,它提供了比synchronized更加广泛的锁定操作.Lock接口有3个实现它的类:ReentrantLock.ReetrantReadWriteLock.ReadLock和ReetrantReadWriteLock.WriteLock,即重入锁.读锁和写锁.lock必须被显式地创建.锁定和释放,为了可以使用更多的功能,一般用ReentrantLock为其实例

  • 浅谈Java线程间通信之wait/notify

    Java中的wait/notify/notifyAll可用来实现线程间通信,是Object类的方法,这三个方法都是native方法,是平台相关的,常用来实现生产者/消费者模式.先来我们来看下相关定义: wait() :调用该方法的线程进入WATTING状态,只有等待另外线程的通知或中断才会返回,调用wait()方法后,会释放对象的锁. wait(long):超时等待最多long毫秒,如果没有通知就超时返回. notify() :通知一个在对象上等待的线程,使其从wait()方法返回,而返回的前提

  • 浅谈Java回收对象的标记和对象的二次标记过程

    一.对象的标记 1.什么是标记?怎么标记? 第一个问题相信大家都知道,标记就是对一些已死的对象打上记号,方便垃圾收集器的清理. 至于怎么标记,一般有两种方法:引用计数和可达性分析. 引用计数实现起来比较简单,就是给对象添加一个引用计数器,每当有一个地方引用它时就加1,引用失效时就减1,当计数器为0的时候就标记为可回收.这种判断效率很高,但是很多主流的虚拟机并没有采用这种方法,主要是因为它很难解决几个对象之间循环引用的问题,虽然不怎么用了,但还是值得我们学习! public class Test

  • 浅谈java多态的实现主要体现在哪些方面

    thinking in java3中的多态 People are often confused by other, non-object-oriented features of Java, like method overloading, which are sometimes presented as object-oriented. Don't be fooled: If it isn't late binding, it isn't polymorphism 按文面翻译 人们总是被jav

  • 浅谈Java操作符与其优先级

    几乎所有运算符都只能操作"主类型"(Primitives).例外是"="."= ="和"! =",它们能操作所有对象.除此以外,String类支持"+"和"+=". 基本类型存储了实际的数值.而并非指向一个对象的引用.所以在为其赋值的时候,是直接把一个地方的内容复制到了另一个地方.例如,对基本数据类型使用a=b,那么b的内容就复制给了a.若接着修改了a,而b根本不会受这种修改的影响.(在

  • 浅谈Java垃圾回收的实现过程

    本教程是为了理解基本的Java垃圾回收以及它是如何工作的.这是垃圾回收教程系列的第二部分.希望你已经读过了第一部分:<简单介绍Java垃圾回收机制>. Java垃圾回收是一项自动化的过程,用来管理程序所使用的运行时内存.通过这一自动化过程,JVM解除了程序员在程序中分配和释放内存资源的开销. 启动Java垃圾回收 作为一个自动的过程,程序员不需要在代码中显示地启动垃圾回收过程.System.gc()和Runtime.gc()用来请求JVM启动垃圾回收. 虽然这个请求机制提供给程序员一个启动GC

  • 浅谈java多线程编程

    一.多线程的优缺点 多线程的优点: 1)资源利用率更好 2)程序设计在某些情况下更简单 3)程序响应更快 多线程的代价: 1)设计更复杂 虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般都更复杂.在多线程访问共享数据的时候,这部分代码需要特别的注意.线程之间的交互往往非常复杂.不正确的线程同步产生的错误非常难以被发现,并且重现以修复. 2)上下文切换的开销 当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另一个线程的本地数据

  • 浅谈JAVA 责任链模式

    顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行为型模式. 在这种模式中,通常每个接收者都包含对另一个接收者的引用.如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推. 介绍 意图: 避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止. 主要解决

  • 浅谈java switch如果case后面没有break,会出现什么情况?

    switch表达式的取值:byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是String 如下代码, case"A" :之后没有break,此刻会继续执行 case "B":的代码 System.out.println("bbbbbbbb");遇到break之后,代码运行结束. public static void main(String[] args) { String s = "A"; sw

随机推荐