我有一个用户架构,用户可以成为朋友。
我有一个友谊模式:
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
)。我该如何实现?
谢谢!
最佳答案
这是我所做的:
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...
});
关于node.js - 多对多关系MongoDB Mongoose ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24393729/