1. 程式人生 > >Mongodb簡單例子

Mongodb簡單例子

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";
    }