`
terry0501
  • 浏览: 313814 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mogodb or like array,map select

 
阅读更多

    /**
     * 分页 查询成员列表
     * @param params
     * @param queryInfo
     * @return
     */
    public PartialCollection list(Map<String, String> params,QueryInfo queryInfo) {
        String groupId=params.get("groupId");
        String isAuth=params.get("isAuth");
        String isInstall=params.get("isInstall");
        String nameOrMdn=params.get("nameOrMdn");
        String contactsId=params.get("contactsId");
        String spId="";//params.get("spId");
        String isAll=params.get("isAll");
        MongoQuery query = createMongoQuery(MONGO_CONTACTS_COLLECTION);
        BasicDBObject conds = new BasicDBObject();
        conds.put("contactsId", contactsId);
        if(StringUtil.isNullOrEmpty(spId)){
            spId=getSpId();
        }
        conds.put("spId",spId);
        conds.put("status", Constants.CONTACTS_MEMBER_STATUS_NORMAL);
        BasicDBObject listMatch=new BasicDBObject();
        if(StringUtil.isNotNullOrEmpty(groupId)){
            if(Constants.CONTACTS_UNGROUPED_ID.equals(groupId)){//未分组 特殊处理
                conds.put("status", Constants.CONTACTS_MEMBER_STATUS_NORMAL);
               
                listMatch.put(QueryOperators.ELEM_MATCH, new BasicDBObject("id",groupId));
                query.addAll(new BasicDBObject("groupList", listMatch));
            }else{
                conds.put("status", Constants.CONTACTS_MEMBER_STATUS_NORMAL);
                List<String> gIdList = new ArrayList<String>();
                if(Constants.YES.equals(isAll)){
                    List<Map<String,String>> gList = getGroupChildren(groupId,"3");
                    if(gList!=null){
                        for (Map<String,String> group : gList) {
                            gIdList.add(group.get("id"));
                        }
                    }
                }else{
                    gIdList.add(groupId);
                }
                listMatch.put(QueryOperators.ELEM_MATCH, new BasicDBObject("id", new BasicDBObject(QueryOperators.IN,gIdList)));
                query.addAll(new BasicDBObject("groupList", listMatch));
            }
        }
    ;
        if(StringUtil.isNotNullOrEmpty(isAuth)){
            if(Constants.YXT_NOT_AUTH.equals(isAuth)){
                BasicDBObject queryObject = new BasicDBObject().append( 
                        QueryOperators.OR, 
                        new BasicDBObject[] { new BasicDBObject("yxtMap", new BasicDBObject(QueryOperators.EXISTS,false)), 
                                              new BasicDBObject("yxtMap.isAuth", isAuth)}); 
                query.addAll(queryObject);
            }else{
                conds.put("yxtMap.isAuth",isAuth);
            }
           
        }
        if(StringUtil.isNotNullOrEmpty(isInstall)){
            if(Constants.YXT_NOT_INSTALL.equals(isInstall)){
                conds.append(QueryOperators.OR, 
                        new BasicDBObject[] { new BasicDBObject("yxtMap", new BasicDBObject(QueryOperators.EXISTS,false)), 
                                              new BasicDBObject("yxtMap.isInstall", isInstall)}); 
            }else{
                conds.put("yxtMap.isInstall",isInstall);
            }
           
        }
        if(StringUtil.isNotNullOrEmpty(nameOrMdn)){
            BasicDBObject queryObject = new BasicDBObject()
            .append(QueryOperators.OR,  new BasicDBObject[] { new BasicDBObject("name", getLikeBsonObj(nameOrMdn)),  new BasicDBObject("mdn", nameOrMdn) }); 
            query.addAll(queryObject);
        }
        query.addAll(conds);
        query.setQueryInfo(queryInfo);
        query.sort(new BasicDBObject());
        logger.info("list member conds  info"+query.getCondsObject().toString());
        return query.listPartial();
    }

分享到:
评论

相关推荐

    mongodb or 在Python的写法

    Python or的写法,希望对你有帮助,建议多查查,扎实下语法再来下载,省的浪费积分,要50个字实在很难受,快写不下去了

    解决Linux上MongoDB启动脚本错误---env: /etc/init.d/mongodb : no such file or directory

    然而,在使用过程中,有时会遇到启动脚本错误,如"env: /etc/init.d/mongodb : no such file or directory"。这个错误提示表明系统无法找到MongoDB的初始化脚本来启动服务。下面我们将深入探讨这个问题的原因以及...

    Thinkphp使用mongodb数据库实现多条件查询方法

    在Thinkphp中实现多条件查询时,可以使用框架提供的查询构建器(Query Builder),但是当涉及到MongoDB的复合查询时,比如需要使用AND和OR逻辑运算符进行多条件筛选,官方文档中提供的方法可能不足以满足需求。...

    linux安装mongodb教程

    /usr/local/mongodb/mongodb-linux-2.0.7/bin/mongod --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/mongodb-linux-2.0.7/logs/mongodb.log --logappend --port=27017 --fork 知识点 6:配置...

    php操作MongoDB使用说明

    $mongo = new Mongo("mongodb://username:password@192.168.1.22:12345", array('connect' =&gt; false)); $mongo-&gt;connect(); ``` `Mongo`类提供了几个有用的方法,如`listDBs()`用于获取MongoDB服务器上所有数据库的...

    mongodb数据库jar包

    MongoDB是一种NoSQL数据库,它不使用传统的关系型数据模型,而是使用JSON-like文档结构来存储数据,这使得数据的存储和查询更为灵活。它的核心特性包括: 1. 文档型数据模型:MongoDB以BSON(Binary JSON)格式存储...

    MongoDB期末考试测试题

    `map`函数定义了如何将每个文档转换为键值对,`reduce`函数则负责聚合这些键值对。在这里,它用于生成不同专业学生名字的列表。 12. Aggregation Framework: `aggregate`命令用于执行聚合管道操作,例如统计不同...

    mongodb-测试数据

    MongoDB是一种流行的开源、分布式文档数据库,常被用于构建高性能、可扩展的应用程序。这个“mongodb-测试数据”压缩包显然包含了一些用于测试MongoDB功能的样例数据集,特别是针对增、删、改、查(CRUD)操作的学习...

    MongoDB实验 - .docx

    MongoDB 实验报告 本实验报告旨在详细介绍 MongoDB 的安装、配置和基本操作步骤,本报告基于 CentOS 7 系统,通过一步一步的截图和文字说明,帮助读者快速掌握 MongoDB 的使用。 一、安装 MongoDB 首先,我们需要...

    MongoDB图形化管理工具 MongoDB Compass

    MongoDB图形化管理工具 MongoDB Compass

    Linux安装mongodb客户端

    sudo vim /etc/yum.repos.d/mongodb-org-4.2.repo 写入: [mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpg...

    PHP操作MONGODB详细文档 WORD版

    在IT行业中,数据库管理和开发是至关重要的技能,尤其是在大数据时代,NoSQL数据库如MongoDB的使用日益广泛。MongoDB是一个高性能、开源、无模式的分布式文档型数据库,它以其灵活性和可扩展性受到青睐。而PHP作为...

    MongoDB(mongodb-src-r5.0.4.tar.gz)

    MongoDB Community Server(mongodb-src-r5.0.4.tar.gz)源代码 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非...

    MongoDB入门指南.pdf

    MongoDB入门指南 MongoDB是一种开源的文档类型数据库,它具有高性能、可扩展、高可用、自动收缩等特性。MongoDB能够避免传统的ORM映射,从而有助于开发。MongoDB中的每一行记录就是一个文档,它是一个由键值对构成...

    mongodb Windows7 64位

    MongoDB是一款开源、高性能、无模式的文档型数据库,它在现代应用程序开发中扮演着重要的角色,特别是在处理大量非结构化数据时。针对"mongodb Windows7 64位"这个主题,我们将深入探讨MongoDB在Windows 7 64位操作...

    DBeaver新增MongoDB驱动

    MongoDB驱动

    mongodb.dll 下载.zip

    MongoDB是一个开源、分布式、高性能的NoSQL数据库,以其灵活性、可扩展性和高可用性而闻名。`mongodb.dll`是MongoDB数据库系统在Windows平台上运行所必需的一个动态链接库(DLL)文件,它包含了MongoDB客户端和...

    如何安装MongoDB 如何使用MongoDB

    本课程是一套关于MongoDB应用开发的实战性教程,名为《深入浅出MongoDB应用实战开发(基础、开发指南、系统管理、集群及系统架构)》,教程侧重于讲解MongoDB的常用特性及高级特性,从实际开发的角度出发对MongoDB...

    php操作mongodb详解

    $mongo = new Mongo("mongodb://username:password@192.168.1.22:12345", array('connect' =&gt; false)); $mongo-&gt;connect(); ``` 2. **获取数据库信息** - `Mongo::listDBs()`方法用于获取服务器上所有数据库的...

Global site tag (gtag.js) - Google Analytics