假设我有以下Schema,它是一个简单的用户模式,有一个朋友列表:
var userSchema = mongoose.Schema({
name: { type: String, required: true },
friends: [ { type: Schema.Types.ObjectId, ref: 'User'} ]
});
var User = mongoose.model('User', userSchema);
我知道我可以执行以下操作来查询用户甚至查询某个用户的朋友:
User
.find({name: 'fooUser'}
.populate('friends')
.exec(function(error, result) {
//do something...
});
我目前正忙着查询朋友关系到任意“深度”的任务,例如用户'fooUser'的朋友的朋友。
这个问题还涉及对多个关系级别的任何关系查询(涉及任意模型)。
你对我有什么提示吗? 谢谢!
答案 0 :(得分:1)
User
.find({name: 'fooUser'}
.populate('friends')
.exec(function(error, result) {
User.populate(result,{path:"friends.friendsoffriend",model:'friendsoffriend'},function(err,result){
//this way you can go deep and deeper
})
});
https://github.com/LearnBoost/mongoose/wiki/3.6-Release-Notes#added-documentpopulatedpath