MongoDB增删改查Dao

新增数据:

    /**
     * save ApproveMongoDto
     */
    public void saveApproveTarget(ApproveMongoDto approveMongoDto) {
        mongoSquareTemplate.insert(approveMongoDto, APPROVED);
    }

删除数据:

    /**
     * delete ApproveMongoDto
     * @param d
     */
    public void deleteApproveTarget(ApproveMongoDto d) {
        mongoSquareTemplate.remove(new Query(Criteria.where("targetId").is(d.getTargetId()).andOperator(
                Criteria.where("targetType").is(d.getTargetType()))),
                ApproveMongoDto.class,APPROVED);
    }

更新数据:

    /**
     *  update ApproveMongoDto
     * 曝光+1更新
     */
    public void updateTargetForShow(Long targetId,Integer targetType,Long uid) {
        mongoSquareTemplate.updateFirst(new Query(Criteria.where("targetId").is(targetId)
                        .andOperator(Criteria.where("targetType").is(targetType))),
                new Update().addToSet("uids",uid)
                        .inc("showCount", 1)
                        .set("updateTime",System.currentTimeMillis())
                , ApproveMongoDto.class, APPROVED);
    }

查询列表:

    /**
     * search pageList
     * @param baseObj
     * @return
     */
    public List<DBObject> getDBObjectPageList(BasicDBObject baseObj) {
        DBCollection collection = mongoSquareTemplate.getCollection(APPROVED);
        Cursor cursor = collection.find(baseObj).limit(20);
        List<DBObject> list = new ArrayList<DBObject>();
        while(cursor.hasNext()){
            DBObject obj = cursor.next();
            list.add(obj);
        }
        return list;
    }

多条件查询:

           //查询mongo-hot数据
                BasicDBObject obj1 = new BasicDBObject("state",ContentApproveEnum.approved_new.type);
                BasicDBObject obj2 = new BasicDBObject("approveCount",new BasicDBObject("$gt",2));
                BasicDBObject obj3 = new BasicDBObject("showCount",new BasicDBObject("$lt",6));
                Long[] uidArray = {Long.parseLong(uid)};
                BasicDBObject obj4 = new BasicDBObject("uids",new BasicDBObject("$nin",uidArray));
                BasicDBObject andObj = new BasicDBObject("$and", Arrays.asList(obj3,obj2,obj1,obj4));
                List<DBObject> list = contentApproveMongoDao.getDBObjectPageList(andObj);
                if(list!=null&&list.size()>0){
                    int index = RandomUtils.randomInt(list.size());
                    DBObject tempObj = list.get(index);
                    ApproveMongoDto d = new ApproveMongoDto();
                    d = MongoToBeanUtil.dbObject2Bean(tempObj,d);
                    return d;
                }else{
                    return null;
                }

Mongo索引

db.approved.ensureIndex({"targetId":1,"targetType":1},{"unique":true})
db.approved.createIndex({"showCount":1,"state":1,"approvedCount":1})
db.approved.createIndex({"takeCount":1,"state":1})
db.approved.createIndex({"createTime":1,"state":1})

db.approved_history.createIndex({"updateTime":1})
db.approved_history.createIndex({"targetId":1,"targetType":1},{"unique":true})

db.approved_record.createIndex({"createTime":1})

转载于:https://my.oschina.net/u/1037605/blog/757482

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值