iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >【mongoDB】Java中使用条件操作符进行查询
  • 508
分享到

【mongoDB】Java中使用条件操作符进行查询

2024-04-02 19:04:59 508人浏览 安东尼
摘要

查询时经常会用到$in之类的操作符,比如db.collection_0.find("_id":{"$in","0001","0002","0003"})。但是shell归shell,java里应该怎么写,在

查询时经常会用到$in之类的操作符,比如db.collection_0.find("_id":{"$in","0001","0002","0003"})。
但是shell归shell,java里应该怎么写,在这就拿$in作为例子。
PS:我喜欢$in,尤其key是一个array类型的时候。


我用的是monGo-java-driver 2.11.0

现在我有个collection叫col_0,然后我在里面存了这么写东西。
【mongoDB】Java中使用条件操作符进行查询
假设这是_id为0001的用户有0002和0003两个好友。
现在我想查询一个用户的好友的好友,就像“推荐好友”那样的东西。

Java代码的话,大概可以这样写:

DB db = MonFactory.getInstance().getMongo().getDB("test");
        DBCollection dbCollection = db.getCollection("col_0");
        BasicDBObject term = new BasicDBObject();
        term.put("_id", uid);
        DBObject curUserData = dbCollection.findOne(term);
        List<String> p4pList = new ArrayList<String>();
        p4pList.addAll((Collection<? extends String>) curUserData.get("pals"));
        DBObject result;
        term = new BasicDBObject("_id", new BasicDBObject("$in", p4pList));
        DBCursor cursor = dbCollection.find(term);
        while (cursor.hasNext()) {
            if ((result = cursor.next()) != null) {
                System.out.println(result.get("pals"));
            }
        }


使用的BasicDBObject的构造函数是这样定义的:


public BasicDBObject(String key, Object value){
    super(key, value);
}


也就是说我把$in当作key来使用了。
按shell的语法来说貌似是那么回事,但我总觉得这种写法不够OO。
于是我用QueryBuilder这样写:

DB db = MonFactory.getInstance().getMongo().getDB("test");
        DBCollection dbCollection = db.getCollection("col_0");
        DBObject term = new BasicDBObject();
        term.put("_id", uid);
        DBObject curUserData = dbCollection.findOne(term);
        List<String> p4pList = new ArrayList<String>();
        p4pList.addAll((Collection<? extends String>) curUserData.get("pals"));
        DBObject result;
//      term = new BasicDBObject("_id", new BasicDBObject("$in", p4pList));
        term = QueryBuilder.start().and("id").in(p4pList).get();
        DBCursor cursor = dbCollection.find(term);
        while (cursor.hasNext()) {
            if ((result = cursor.next()) != null) {
                System.out.println(result.get("pals"));
            }
        }


有时候感觉OO真是自寻烦恼。
无论如何,条件操作符了这样就可以用了。

但我可能对对象关系映射之类的东西习惯了,所以我决定用Morphia什么的。
于是:

Mongo mongo = new MongoClient("localhost", 27017);
            DataStore store = new DataStore(mongo, "test");
            Query<Person> query = store.createQuery(Person.class);
            query.criteria("_id").equals(uid);
            query = store.createQuery(Person.class);
            query.criteria("_id").in(Arrays.asList(query.get().getPals()));
            for (Iterator<Person> itr = store.createQuery(Person.class)
                    .iterator(); itr.hasNext();) {
                System.out.println(itr.next().getPals());
            }



您可能感兴趣的文档:

--结束END--

本文标题: 【mongoDB】Java中使用条件操作符进行查询

本文链接: https://www.lsjlt.com/news/42493.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【mongoDB】Java中使用条件操作符进行查询
    查询时经常会用到$in之类的操作符,比如db.collection_0.find("_id":{"$in","0001","0002","0003"})。但是shell归shell,java里应该怎么写,在...
    99+
    2022-10-18
  • 怎么在java项目中利用mongodb进行查询操作
    本篇文章为大家展示了怎么在java项目中利用mongodb进行查询操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。java 中mongodb的各种操作查询的实例详解一. 常用查询: 查询一条数据:...
    99+
    2023-05-31
    java mongodb
  • Mybatis Criteria使用and和or进行联合条件查询的操作方法
    之前用Mybatis框架反向的实体,还有实体里面的Example,之前只是知道Example里面放的是条件查询的方法,可以一直不知道怎么用,到今天才开始知道怎么简单的用。在我们前台查...
    99+
    2022-11-12
  • PyMongo进行MongoDB查询和插入操作的高效使用示例
    目录插入到集合中插入多个文档查找一个查找所有不允许在同一对象中同时指定0和1值高级查询使用正则表达式过滤插入到集合中 要将记录(在MongoDB中称为文档)插入到集合中,使用insert_one()方法。insert_o...
    99+
    2023-11-16
    PyMongo 进行 MongoDB 查询和插入操作 PyMongo MongoDB
  • mongodb中根据时间过滤进行查询的操作方法
    目录MongoDB中简单的根据时间过滤进行查询补充:如何根据日期过滤/查找MongoDB中的记录问题:如何根据日期过滤/查找MongoDB中的记录解答mongodb中简单的根据时间过滤进行查询 目的:查询当某天的文档信息...
    99+
    2023-05-12
    mongodb时间过滤查询 mongodb时间查询 mongodb时间过滤
  • mongoDB数据库中的多条件查询怎么利用Java实现
    mongoDB数据库中的多条件查询怎么利用Java实现?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。客户端代码:db.url.find({index:4,status:0,ur...
    99+
    2023-05-31
    java mongodb ava
  • Go中如何使用MongoDB进行数据查询
    Go是一种开源编程语言,被许多开发人员广泛使用。在与MongoDB数据库进行交互时,Go在编写高效和简洁查询时的表现也非常出色。本文将介绍如何在Go中使用MongoDB进行查询。首先,我们需要安装“mgo” Go-MongoDB驱动程序,可...
    99+
    2023-05-14
  • Go中怎么使用MongoDB进行数据查询
    这篇文章主要讲解了“Go中怎么使用MongoDB进行数据查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go中怎么使用MongoDB进行数据查询”吧!首先,我们需要安装“mgo” Go-M...
    99+
    2023-07-05
  • thinkphp关联查询如何使用条件进行筛选
    这篇“thinkphp关联查询如何使用条件进行筛选”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“thinkphp关联查询如何...
    99+
    2023-07-05
  • php怎么使用mongodb进行增删查改操作
    随着大数据时代的到来,对于数据的存储和管理已经成为一个重要的问题。很多传统的关系型数据库在处理大数据时遇到了瓶颈,而NoSQL数据库则成为了一个备受关注的方向。MongoDB作为一款流行的NoSQL数据库,已经被广泛应用于各种大型Web应用...
    99+
    2023-05-14
    mongodb php
  • php如何使用mongodb进行增删查改操作
    本文小编为大家详细介绍“php如何使用mongodb进行增删查改操作”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何使用mongodb进行增删查改操作”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、M...
    99+
    2023-07-05
  • Java中怎么利用Streams对数据库进行查询操作
    Java中怎么利用Streams对数据库进行查询操作,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。示例数据库我们使用的示例数据库是Saki...
    99+
    2022-10-18
  • 使用JavaScript 怎么对MongoDB进行增删查改操作
    本篇文章给大家分享的是有关使用JavaScript 怎么对MongoDB进行增删查改操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Inse...
    99+
    2022-10-18
  • 使用python怎么对MongoDB进行增删改查操作
    这篇文章将为大家详细讲解有关使用python怎么对MongoDB进行增删改查操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、说明MongoDB使用查看数据的功能时非常方便。能立即看到增...
    99+
    2023-06-14
  • SpringBoot集成Jpa对数据进行排序、分页、条件查询和过滤操作
    目录1、排序查询2、分页查询3、条件查询之前介绍了SpringBoot集成Jpa的简单使用,接下来介绍一下使用Jpa连接数据库对数据进行排序、分页、条件查询和过滤操作。首先创建Spr...
    99+
    2023-05-20
    SpringBoot集成Jpa SpringBoot集成Jpa排序分页查询
  • 使用Java怎么连接MongoDB数据库并进行增删改查操作
    使用Java怎么连接MongoDB数据库并进行增删改查操作?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java连接MongoDB进行增删改查的操作1.创建数据库的连接,进...
    99+
    2023-05-31
    java mongodb 增删改查
  • MyBatis-Plus使用条件构造器实现不同条件的查询,更新删除操作
    Wrapper 是所有条件构造器的父类,作用是生成条件语句,即where后面的sql子句 在调用查询,更新,删除操作时,需要根据条件进行判断,可以使用条件构造器进行组合条件,生成where后面条件子句 QueryWrap...
    99+
    2023-08-31
    sql mysql 数据库
  • 如何使用SQL语句在MySQL中进行数据过滤和条件查询?
    如何使用SQL语句在MySQL中进行数据过滤和条件查询?MySQL作为一种常用的数据库管理系统,广泛用于存储和管理大量数据。在实际应用中,我们常常需要根据特定的条件查询数据,以满足各种需求。本文将介绍如何使用SQL语句在MySQL中进行数据...
    99+
    2023-12-18
    MySQL 数据过滤 SQL语句
  • 如何使用PHP查询数据库数值进行操作
    PHP是一种非常流行的服务器端编程语言,广泛用于Web开发。在Web开发中,PHP通常与数据库一起使用,以更好地管理和操作数据。在本文中,我们将介绍如何使用PHP查询数据库数值进行操作。首先,我们需要连接到数据库。PHP提供了许多库和扩展来...
    99+
    2023-05-14
    php 数据库
  • 怎么使用PHP查询数据库数值进行操作
    这篇文章主要介绍“怎么使用PHP查询数据库数值进行操作”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用PHP查询数据库数值进行操作”文章能帮助大家解决问题。首先,我们需要连接到数据库。PHP提...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作