spring boot 使用 mongodb(2)

/*-------------------------------------------------*/

@Autowired
MongoOperations mongoTemplate;
 
public void saveUser(UserDTO users) {
    mongoTemplate.save(users);
}

public UserDTO findUserByName(String name) {
    return mongoTemplate.findOne(
            new Query(Criteria.where("name").is(name)), UserDTO.class);
}

public JSONArray findByName(String name) {

    BasicDBObject parameter = new BasicDBObject();
    parameter.put("name", name);

    DBCollection personColl = mongoTemplate.getCollection(mongoTemplate.getCollectionName(UserDTO.class));
    DBCursor item = personColl.find(parameter);

    JSONArray array = new JSONArray();
    while (item.hasNext()) {
        array.add(item.next());
        //System.out.println(item.next());
    }
    return array;
}

public void removeUser(String name) {
    mongoTemplate.remove(new Query(Criteria.where("name").is(name)),
            UserDTO.class);
}

public void updateUser(String name, String key, String value) {
    mongoTemplate.updateFirst(new Query(Criteria.where("name").is(name)),
            Update.update(key, value), UserDTO.class);

}

public void updateUser(String name, String key, JSONArray value) {
    mongoTemplate.updateFirst(new Query(Criteria.where("name").is(name)),
            Update.update(key, value), UserDTO.class);

}

public void updateUser(String name, Map<String, Object> kvs) {
    BasicDBObject basicDBObject = new BasicDBObject();

    BasicDBObjectBuilder basicDBObjectBuilder = new BasicDBObjectBuilder();
    for (Map.Entry<String, Object> entry : kvs.entrySet()) {
        basicDBObjectBuilder.add(entry.getKey(), entry.getValue());
    }
    basicDBObject.put("$set", basicDBObjectBuilder.get());

    mongoTemplate.updateFirst(new Query(Criteria.where("name").is(name)), new BasicUpdate(basicDBObject), UserDTO.class);
}

public List<UserDTO> listUser() {
    return mongoTemplate.findAll(UserDTO.class);
}
@Document(collection="users")
@CompoundIndexes({
        @CompoundIndex(name = "age_idx", def = "{'name': 1, 'age': -1}")
})
public class UserDTO extends User {
    private static final long serialVersionUID = 3148176768559230877L;

    @Id
    @Indexed
    private String _id;

//    /private List<String> item;

    public UserDTO() {
        super();
    }

//    public List<String> getItem() {
//        return item;
//    }
//
//    public void setItem(List<String> item) {
//        this.item = item;
//    }

    @Override
    public String toString() {
        return "UserDTO{" +
                "_id='" + _id + '\'' +
                '}';
    }
@ResponseBody
    @GetMapping(value = "/save/user", produces = "application/json;charset=UTF-8")
    public JSONObject saveUsers(HttpServletRequest req, HttpServletResponse res) throws Exception {

        JSONObject result = new JSONObject();
        JSONArray array = new JSONArray();
        JSONObject tmp = null;


        UserDTO users = new UserDTO();
        users.setName("测试账号");
        //userService.saveUser(users);
        Map update = new HashMap<String, Object>();
        for (int i = 0; i < 10; i++) {
//            tmp = new JSONObject();
            update.put("question" + i, "answer" + i);
//            array.add(tmp.toString());
        }
        userService.updateUser("测试账号1", update);
//        JSONArray user = userService.findByName("测试账号1");
//        user.setCreateTime(new Date());
//        user.setLastUpdate(new Date());
//        logger.info("------------" + user);
//        result.put("user", user);
        result.put("status", 0);

        helloSender.send("hello world!!");
        return result;
    }

 

转载于:https://my.oschina.net/u/1538767/blog/1582273

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值