java MongoDB查询(一)简单查询

MongoDB的java驱动提供了查询的功能,查询条件也是bson对象,这篇就看下怎么进行简单的数据查询

1、数据结构

集合:firstCollection

数据内容:

{ “_id” : ObjectId(“55adba52fa1f3cf038c2aea6”), “name” : “user0”, “age” : 22, “sex” : 0 }

{ “_id” : ObjectId(“55adba52fa1f3cf038c2aea7”), “name” : “user1”, “age” : 23, “sex” : 1 }

{ “_id” : ObjectId(“55adba52fa1f3cf038c2aea8”), “name” : “user2”, “age” : 24, “sex” : 0 }

{ “_id” : ObjectId(“55adba52fa1f3cf038c2aea9”), “name” : “user3”, “age” : 25, “sex” : 1 }

{ “_id” : ObjectId(“55adba52fa1f3cf038c2aeaa”), “name” : “user4”, “age” : 26, “sex” : 0 }

{ “_id” : ObjectId(“55adba52fa1f3cf038c2aeab”), “name” : “user5”, “age” : 27, “sex” : 1 }

2、连接数据库,拿到集合firstCollection

MongoClient mClient = new MongoClient(“10.211.55.8”);

DB db = mClient.getDB(“test”);

DBCollection collection = db.getCollection(“firstCollection”);

3、查询name为user1的对象

查询条件Json内容:

{“name”: “user1”}

查询条件Java内容:

BasicDBObject queryObject = new BasicDBObject(“name”,”user1″);

执行过程:

DBObject obj = collection.findOne(queryObject);

这样就拿到了name为user1的对象了

4、查询name包含user的对象

这样模糊查询,也就类似于like查询是通过正则表达式来完成的

查询条件Json内容:

{“name”:/user/}

查询条件Java内容:

Pattern queryPattern = Pattern.compile(“user”, Pattern.CASE_INSENSITIVE);

BasicDBObject queryObject = new BasicDBObject(“name”,queryPattern);

执行过程:

Pattern queryPattern = Pattern.compile(“user”, Pattern.CASE_INSENSITIVE);

BasicDBObject queryObject = new BasicDBObject(“name”,queryPattern);

Cursor cursor = collection.find(queryObject);

while(cursor.hasNext()){

DBObject obj = cursor.next();

System.out.println(obj.toString());

5、查询年龄大于24的对象

查询条件Json内容:

{“age”:{“$gt”:24}}

查询条件Java内容:

两个Bson对象嵌套

BasicDBObject gt = new BasicDBObject(“$gt”,24);

BasicDBObject queryObject = new BasicDBObject(“age”,gt);

执行过程:

BasicDBObject gt = new BasicDBObject(“$gt”,24);

BasicDBObject queryObject = new BasicDBObject(“age”,gt);

Cursor cursor = collection.find(queryObject);

while(cursor.hasNext()){

DBObject obj = cursor.next();

System.out.println(obj.toString());

备注:

$gt:>

$gte:>=

$eq: =

$ne: !=

$lt: <

$lte:

Original: https://www.cnblogs.com/luoaz/p/4691639.html
Author: 小爱博客
Title: java MongoDB查询(一)简单查询

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/580242/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 离散数学数理逻辑思维导图总结!

    数理逻辑 离散数学这个学科挺让人头疼的,就多加把劲吧,不断付出与努力,我相信美好就会到来了! 这是我整理的一份简单的思维导图! Original: https://www.cnbl…

    Java 2023年6月5日
    078
  • Vue3+Vue-cli4项目中使用腾讯滑块验证码

    Vue3+Vue-cli4项目中使用腾讯滑块验证码 简介: 滑块验证码相比于传统的图片验证码具有以下优点: 验证码的具体验证不需要服务端去验证,服务端只需要核验验证结果即可。 验证…

    Java 2023年6月8日
    077
  • 手下两个应届生:一个踏实喜欢加班,一个技术强挑活,怎么选??

    ​点击蓝色”程序员黄小斜”关注我哟 加个”星标”,每天和你一起多进步一点点! 本文来源 | 程序员求职面试(ID:CoderJob)…

    Java 2023年6月8日
    096
  • 频频曝出程序员被抓,我们该如何避免面向监狱编程?

    过去几年,频频有程序员被抓的消息刷爆技术圈,无论是技术高手、公司合伙人还是普通程序员,甚至整个科技公司,都有因为违法被抓的案例。 案例 比如: 1、著名的Nignx之父Igor S…

    Java 2023年5月29日
    073
  • Set集合

    一、Set集合简介 Set集合简单来说相当于一个桶,程序可以依次的把多个对象丢进桶中(Set集合) Set继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,…

    Java 2023年6月9日
    080
  • 堆排序算法剖析

    1.将待排序列以一个完全二叉树存储,设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。 2…

    Java 2023年6月16日
    0107
  • docker安装Java开发相关环境

    docker安装Java开发环境 官网:https://www.docker.com/ 主要安装: mysql:5.7.29 Redis RabbitMQ nginx 如果在获取镜…

    Java 2023年6月5日
    079
  • Feign源码解析系列-注册套路

    感谢不知名朋友的打赏,感谢你的支持! 开始 在追寻Feign源码的过程中发现了一些套路,既然是套路,就可以举一反三,所以值得关注。这篇会详细解析Feign Client配置和初始化…

    Java 2023年6月13日
    071
  • 二进制方式安装搭建k8s集群

    使用三台服务器搭建k8s集群,集群服务器地址规划如下: IP hostname 备注 192.168.206.128 master 主节点 192.168.206.129 node…

    Java 2023年5月29日
    0109
  • Nginx入门–从核心配置与动静分离开始

    写在前面 优化我们项目,服务器部署,不仅仅可以是分布式,Nginx一样可以通过动静分离,负载均衡来减轻我们服务器的压力。Nginx的知识链,学习周期相对比较长,博主也是刚刚入门,这…

    Java 2023年6月5日
    074
  • LeetCode刷题

    1.53最大和的连续子数组 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 class…

    Java 2023年6月5日
    072
  • NGINX根据不同请求头参数,请求不同服务器

    在nginx的location配置中,在获取header配置时,须要在header名称前面加上固定前缀”http_”,并将header名称中的”…

    Java 2023年5月30日
    058
  • javaeye站点被ARP攻击有感

    javaeye站点被ARP攻击,这本身是一件令人遗憾的事情。但是看到其站长声明的内容,感觉他活该。 看到这个内容: 我对这个国家已经不报任何希望,但是你不要让我对中国的网管人员也不…

    Java 2023年5月29日
    063
  • 使用idea+springboot+Mybatis搭建web项目

    使用idea+springboot+Mybatis搭建web项目 springboot的优势之一就是快速搭建项目,省去了自己导入jar包和配置xml的时间,使用非常方便。 1、创建…

    Java 2023年5月30日
    0133
  • easyExcel用策略模式实现导入

    &#x5728;&#x4E4B;&#x524D;&#x7684;&#x4E00;&#x6B21;&#x9879;&#…

    Java 2023年6月13日
    076
  • 09、SpringBoot 启动 刷新应用上下文 自动装配解析(一)

    debug进入 refreshContext方法 private void refreshContext(ConfigurableApplicationContext contex…

    Java 2023年6月13日
    078
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球