mongoDB的Criteria查询:多表联合查询

数据库 waitig 574℃ 百度已收录 0评论

问题概述:新接手的项目首次接触非关系型数据库mongodb,找不到地方直接写SQL,只能通过Criteria查询数据库。只好查资料用hibernate的Criteria多表查询方法,总是和网上的情况不一样,原来mongodb的Criteria不一样。

问题详情:有三张表,用户表,角色表,权限表。用户角色多对一,角色权限多对多。通过权限id查询拥有该权限的角色

解决办法

	@RequestMapping("/findUserByResource")
	@ResponseBody
	public List<User> findUserByResource(String reid){
		//
		Resource resource = resourceService.findOne(reid,"basic_resource");
		List<Criteria> criterias = new ArrayList<>();
		criterias.add(Criteria.where("resources").in(resource));
		List<Role> roleList = roleService.findAll("basic_role",criterias,"ASC","_id");
		List<Criteria> criterias2 = new ArrayList<>();
		criterias2.add(Criteria.where("roles").in(roleList));
		List<User> userList = userService.findAll(collectionId,criterias2,"ASC","_id");
		return userList;
	}

无法用一句SQL解决,那就只好这样分步执行了,有更好的办法吗


本文由【waitig】发表在等英博客
本文固定链接:mongoDB的Criteria查询:多表联合查询
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)