1. 程式人生 > >java mongodb Criteria多個條件動態組合分頁查詢

java mongodb Criteria多個條件動態組合分頁查詢

在做mongodb的時候想根據多個條件動態組合查詢相關資料網上沒有找到合適的資料,參考了一些例項可是查詢出來條件不起作用,然後就自己琢磨出這樣的程式碼,記錄一下!

/**
     * 按照多條件搜尋問題
     * 分頁
     */
    public List<MyBean> searchMyBeanByCondition(MyVo vo) throws Exception {
        Criteria c1=null;
        Criteria c2=null;
        Criteria c3=null;

        ArrayList<Criteria> list=new ArrayList<Criteria>();

        if (vo.getCatalog1()!=null){
            c1 = Criteria.where(MyBean.FILD_CATALOG1).is(vo.getCatalog1());
            list.add(c1);
        }
        if (vo.getCatalog()!=null){
            c2=Criteria.where(MyBean.FILD_CATALOG).is(vo.getCatalog());
            list.add(c2);
        }
        if (vo.getTitle()!=null){
            //模糊查詢
            c3=Criteria.where(MyBean.FILD_TITLE).regex(".*?\\" +vo.getTitle()+ ".*");
            list.add(c3);
        }
        Criteria[] arr=new Criteria[list.size()];
        list.toArray(arr);
        Criteria criteria=new Criteria().andOperator(arr);
        Query query=new Query(criteria);
        query.skip((vo.getPage()-1)*vo.getPageSize());
        query.limit(vo.getPageSize());

        List<MyBean>  list= mongoTemplate.find(query, MyBean.class);
        return list;
    }