0

我正在尝试创建一棵树来存储按路径排序的信息,例如: .../data/cars/toyota .../data/cars/fiat

我发现的问题是 Java 语法本身,我如何创建父母和孩子?我已经彻底阅读了以下链接,但我仍然无法在 java 中开发我需要的东西:http: //docs.mongodb.org/manual/tutorial/model-tree-structures/ http://www.codeproject.com /Articles/521713/Storing-Tree-like-Hierarchy-Structures-With-MongoD

您能否为我提供一个简单的 Java 代码片段,允许创建树 + 创建父级并为该父级创建一个子级?

非常感谢您提前。

我现在正在尝试创建根:

DBCollection coll = db.getCollection(DataColl);
BasicDBObject data = new BasicDBObject("_id", appId);
data.put("path", null);
coll.insert(data);

这要创建孩子:

    public boolean insertIntoDocument(String appId, String url, String data) {
    DBCollection coll = db.getCollection(DataColl);
    String[] array = url.split("/");
    BasicDBObject obj = new BasicDBObject("_id", array[array.length-1]);
    for(int i = 0; i < array.length; i++){
        if(i == array.length-1)
            obj.put("path", array[i]);
        else
            obj.put("path", array[i]+",");
    }
    coll.insert(obj);
    return true;
4

1 回答 1

0

我最终自己找到了答案,希望这对将来的一些新手有所帮助。此代码接收诸如 a/b/c 之类的 url 并创建一棵树。我将 appId 用作 root,您可以使用类似用户标识符(每个用户获取其 url)之类的东西。

public boolean insertIntoDocument(String appId, String url, String data) {
    DBCollection coll = db.getCollection(DataColl);
    String[] array = url.split("/");
    String tempURL = appId;
    for (int i = 0; i < array.length; i++) {
        BasicDBObject obj = new BasicDBObject("_id", array[i]);
        if (i == array.length - 1) {
            tempURL += ","+array[i];
            obj.put("path", tempURL);
            obj.append("data", data);
        } else {
            tempURL += ","+array[i];
            obj.put("path", tempURL);
        }
        if(!elementExistsInDocument(appId, tempURL))
            coll.insert(obj);
    }
    return true;
于 2013-06-20T21:25:54.530 回答