我正在尝试创建一个树来存储路径排序的信息,例如: ... /数据/汽车/丰田 ... /数据/汽车/平坦
我发现的问题是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;
答案 0 :(得分:0)
我最终找到了自己的答案,希望这将有助于未来的新手。此代码接收诸如/ b / c之类的URL并创建树。我以root身份使用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;