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 をルートとして使用します。ユーザー識別子 (各ユーザーはその 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 に答える