Mongodb简单例子

本文提供了一个MongoDB的操作实例,包括添加、查询、更新和删除用户的方法。通过@Document注解定义实体类MongoUser,使用MongoTemplate进行数据库操作,如按条件查询、分页查询、排序和分组查询等。

1、实体类

@Document(collection = "t_user")
public class MongoUser implements Serializable{

    private static final long serialVersionUID = -1409493968092980571L;
    @Id
    private Integer id;
    private String username;
    private String passwrod;
    private Integer age;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPasswrod() {
        return passwrod;
    }
    public void setPasswrod(String passwrod) {
        this.passwrod = passwrod;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    
    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
    }
    
}

2、Mongodb相应操作方法例子

 

 @RequestMapping(value = "/mongoUser.do", produces = "text/html;charset=UTF-8")
    public String mongoUser(HttpServletRequest request, HttpServletResponse response) {
        // 添加用户
//        for(int i = 2; i < 10; i ++){
//            MongoUser mongoUser = new MongoUser();
//            mongoUser.setId(i);
//            mongoUser.setUsername("admin" + i);
//            mongoUser.setPasswrod("123456");
//            mongoUser.setAge(20 + i);
//            mongoTemplate.insert(mongoUser);
//        }
        // 查询所有用户
//        List<MongoUser> users = mongoTemplate.findAll(MongoUser.class);
//        for (MongoUser user : users) {
//            System.out.println(user.getId());
//        }
//        // 根据id查询用户
//        MongoUser mongoUser = mongoTemplate.findById(1, MongoUser.class);
//        System.out.println("根据用户id查询的用户:" + mongoUser);
        //条件查询
//         Query query = new Query();
//         Criteria criteria = new Criteria();
//         criteria.and("username").is("admin");//字段username="admin"
//         query.addCriteria(criteria);
//         query.limit(2);
//         List<MongoUser> users = mongoTemplate.find(query, MongoUser.class);
//         System.out.println(users.size()+"================");
//         for(MongoUser user2 : users){
//             System.out.println(user2.getId());
//         }
//        mongoTemplate.updateFirst操作、mongoTemplate.updateMulti操作、this.mongoTemplate.upsert操作.
//        分别表示修改第一条、修改符合条件的所有、修改时如果不存在则添加.
        // 更新
//          Query query = new Query();
//          Criteria criteria = new Criteria();
//          criteria.where("id").is(1);
//          query.addCriteria(criteria);
////          mongoTemplate.updateFirst(query, Update.update("username", "admin1"), MongoUser.class);
//          Update update = new Update();
//          update.set("username", "admin1");
//          mongoTemplate.updateFirst(query, update, MongoUser.class);
         // 删除(带条件)
         // Query query = new Query();
         // Criteria criteria = new Criteria();
         // criteria.where("id").is(2);
         // query.addCriteria(criteria);
         // mongoTemplate.remove(query, MongoUser.class);
        //多条件查询
//      Query query = new Query();
//      Criteria criteria = new Criteria();
////      criteria.andOperator(Criteria.where("username").is("admin1))
//      criteria.and("username").is("admin1");
//      criteria.and("id").lt(10);
//      query.addCriteria(criteria);
//      query.limit(2);
//      List<MongoUser> users = mongoTemplate.find(query, MongoUser.class);
//      System.out.println(users.size()+"================");
//      for(MongoUser user2 : users){
//          System.out.println(user2.getId());
//      }
        //分页查询
//        Query query = new Query();
//        query.skip(0);
//        query.limit(2);
//        List<MongoUser> users = mongoTemplate.find(query, MongoUser.class);
//        System.out.println(users.size()+"================");
//        for(MongoUser user2 : users){
//            System.out.println(user2.getId());
//        }
        
        //查询数量
//        Query query = new Query();
//        Criteria criteria = new Criteria();
////        criteria.and("username").is("admin1");
//        criteria.and("id").lt(10);
//        query.addCriteria(criteria);
//        Long count = mongoTemplate.count(query, MongoUser.class);
//        System.out.println(count);
       //排序
//      Query query = new Query();
//      query.limit(5);
////      query.sort().on("_id", Order.DESCENDING);
//      query.with(new Sort(Direction.DESC,"_id"));
//      List<MongoUser> users = mongoTemplate.find(query, MongoUser.class);
//      for(MongoUser user2 : users){
//          System.out.println(user2.getId());
//      }
        //分组查询
         GroupBy groupBy = GroupBy.key("username").initialDocument("{count:0}").reduceFunction("function(doc, prev){prev.count+=1}");
         GroupByResults<MongoUser> r = mongoTemplate.group("t_user", groupBy, MongoUser.class);
         BasicDBList list = (BasicDBList)r.getRawResults().get("retval");
         for (int i = 0; i < list.size(); i ++) {
             BasicDBObject obj = (BasicDBObject)list.get(i);
             System.out.println("=========" + obj.get("count"));
         }
        return "login";
    }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值