有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Java递归显示基于级别的MongoDB文档列表

我正在尝试使用Java获取MongoDB文档的列表。 我可以把它列成一个列表,但是文档是分开的,我希望它们列成一棵树

例如,以下是我能得到的:

"data": [
        {
            "categoryLevel": 1,
            "categoryName": "Electronics",
            "categoryId": "1001"
        },
        {
            "categoryLevel": 2,
            "categoryName": "Air Conditioner",
            "categoryId": "1002"
        },
        {
            "categoryLevel": 3,
            "categoryName": "Refrigerator",
            "categoryId": "1003"
        }
    ]

这就是我想要的:

level 1
|
|--level 2
|
|--level 2
|
|--|
   |--level 3

有人建议我使用递归,但我不知道怎么做,请帮助我

假装所有查询语句都存在

*编辑:如果您想查看我的代码。 在这里:

JSONObject result = new JSONObject();
List<ProductCategory> categories = null;
if (!GenericValidator.isBlankOrNull(categoryId)) {
    categories = getProductCategoryController().getProductCategories(new ArrayList<>(Collections.singletonList(categoryId)));
} else {
    categories = getProductCategoryController().getProductCategoriesByOrgId(getOrgEcomosId());
}
if (type.equals("list")) {
    if (null != categories && categories.size() > 0) {
        JSONArray listCategories = new JSONArray();
        categories.forEach(t -> {
            JSONObject category = new JSONObject();
            category.put("categoryLevel", t.getLevel());
            category.put("categoryName", t.getName());
            category.put("categoryId", t.getId());
            listCategories.put(category);
        });
        result = new JSONObject();
        result.put("data", listCategories);
        result.put("status", 1);
    }
}
return result(result);

共 (0) 个答案