【发布时间】:2015-11-27 02:19:48
【问题描述】:
我正在尝试递归遍历 MongoDB 模型中的第 n 个节点。这是我的用户模型。
用户模型
var UserSchema = new Schema({
firstname : { type: String},
parents:[{type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
children:[{type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
partner:[{type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
sibling:[{type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
});
我不知道如何从这个模型中生成树状结构,关于如何实现这个的任何想法?我正在使用 Mongoose 作为模型并且还尝试了深度树和填充没有成功仅适用于第一级。
提前致谢。
【问题讨论】:
-
您有填充文档的示例吗?
-
在这种情况下,尝试执行多于一个级别的人口的主要问题是,当一个用户有一个
parents值引用另一个用户并且该用户有一个children值引用第一个用户。如果您尝试以递归方式自动填充它,您将创建一个无限循环。如果您要从一个孩子开始,然后沿着树向上显示所有父母,那么您应该是安全的,但您仍然需要跟踪所有 userId 以确保您没有意外用户自己的祖先。