我有一个用户架构,用户可以成为朋友。
我有友谊架构:
var friendshipSchema = mongoose.Schema({
from : { type: Schema.Types.ObjectId, ref: 'User' },
to : { type: Schema.Types.ObjectId, ref: 'User' }
});
现在,我希望得到用户foo
的所有朋友:
Friendship
.find({
$or : [
{ from : foo._id },
{ to : foo._id }
]
})
问题是:我想填充来自foo
的所有朋友,但不填充foo
他自己(因为对于X朋友,我会填充X foo
。
我怎么能实现这个目标?
谢谢!
答案 0 :(得分:0)
这就是我所做的:
Friendship
.find({
$or : [
{ from : user._id },
{ to : user._id }
]
})
.populate({
path: 'from',
match: { _id: { $ne: user._id }},
select: '-token'
},{
path: 'to',
match: { _id: { $ne: user._id }},
select: '-token'
})
.lean()
.exec(function(err, retData)
{
// Do something here...
});