我的帖子集合为:
{
_id: SOME_ID,
user: SOME_USER_ID,
media: SOME_LINK
}
以及以下集合:
{
_id: SOME_ID,
user: SOME_USER_ID,
followings: ["SOME_USER_ID"],
followers: ["SOME_USER_ID"]
}
我想从给定用户的关注数组包含的用户那里获取帖子
我尝试过这个,但没有显示任何文档,尝试过gpt,但它说一切都很好
[
{
$lookup: {
from: "follows",
localField: "user",
foreignField: "user",
as: "follow",
},
},
{
$unwind: "$follow",
},
{
$unwind: "$follow.followings"
},
{
$addFields: {
following: "$follow.followings"
}
},
{
$match: {
$expr: {
$eq: ["$user", "$following"]
}
}
},
]
我通过聚合管道获取了所有关注者列表。
const follow = await Post.aggregate([
{
$lookup: {
from: "follows",
localField: "user",
foreignField: "user",
as: "follow"
},
{
$unwind: "$follow"
},
{
$project: {
follow: 1
},
{
$limit: 1
}
])
现在在帖子中搜索它
const posts = await Post.find({ user: { $in: follow[0].followings } })
posts 包含用户关注的所有帖子