在如今的系统多,嵌套组织结构的数据很是常见,在关系型数据库中能够用联合查询来搞定,请各位自行搜索解决。这里主要是提供mongo的设计方法。mongodb的嵌套又引用嵌套还有直接嵌套,这里使用应用嵌套。mysql
加入一个数据结构以下sql
@Id
private String id;
private String parentId;
@DBRef
private List<Item> children = new ArrayList<Item>();mongodb
parentId为父节点的id,这里不能使用dbref,使用会致使引用的死循环。数据库
children为子节点列表。数据结构
将数据存入到mongo以后,数据以下。.net
当咱们须要查找某个item的父节点能够直接设计
db.Item.find({"children.$id": ObjectId("5b835e70060fb022204962db")})
blog
比mysql简单粗暴许多倍了吧。get