`
terry0501
  • 浏览: 305945 次
  • 性别: 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个字实在很难受,快写不下去了

    MongoDB高级查询

    MongoDB高级查询,许多有用的查询函数,相信大家会用得到的

    MongoDB笔记.docx

    一、MongoDB简介 3 二、MongoDB结构 3 二、MongoDB 数据库关系型(这里并不是值关系型数据库的关系) 3 1、MongoDB一对一关系型 3 2、MongoDB一对多关系型 4 3、MongoDB多对多关系型 4 三、创建数据库(mongodb_test...

    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...

    如何安装MongoDB 如何使用MongoDB

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

    Practical.MongoDB.Architecting.Developing.and.Administering.MongoDB

    Skills in these areas are in demand, making this book essential reading for those who want to work more productively or break into big data work. It will prove equally useful for entrepreneurs and ...

    MongoDB应用设计模式

    资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...

    五、MongoDB 学习PPT

    MongoDB 学习PPT

    MongoDB图形化管理工具 MongoDB Compass

    MongoDB图形化管理工具 MongoDB Compass

    【BAT必备】MongoDB面试题

    【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT...

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

    主要介绍了Thinkphp使用mongodb数据库实现多条件查询方法,修改了mongodb驱动文件来实现复合查询、多条件查询,需要的朋友可以参考下

    mongodb安装包

    mongodb,下载mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,

    MongoDB教程基础入门

    教程名称:MongoDB教程基础入门 课程目录:【】MongoDB教程基础入门-代码【】MongoDB教程基础入门01第一讲上【】MongoDB教程基础入门02第一讲下【】MongoDB教程基础入门03第二讲上【】MongoDB教程基础入门04第二讲...

    MongoDB 5.0.6 windows版本

    MongoDB 5.0.6 windows版本

    mongodb-linux-x86_64-4.0.18.tgz

    mv mongodb-linux-x86_64-4.0.18 mongodb 3、进入 mongodb 目录创建目录 db 和 logs cd /usr/local/mongodb mkdir db mkdir logs 4、进入到 bin 目录下,编辑 mongodb.conf 文件,内容如下: dbpath=/usr/local/...

    Mastering MongoDB 3.x

    The next part deals with the administration of MongoDB installations on-premise or in the cloud. We deal with database internals in the next section, explaining storage systems and how they can ...

    MongoDB4.2分片及副本集群搭建

    MongoDB4.2分片及副本集群搭建 MongoDB集群 MongoDB分片 MongoDB副本 MongoDB副本集群

    MongoDB学习MongoDB学习MongoDB学习

    MongoDB学习MongoDB学习MongoDB学习

    windows mongodb 32位

    MongoDB win 32位,MongoDB win 32位,MongoDB win 32位

    mongodb-v4.0

    mongodb-win32-x86_64-2008plus-ssl-v4.0-latest-signed.msi

Global site tag (gtag.js) - Google Analytics