gpt4 book ai didi

javascript - meteor :如何按关注最多的用户排序?

转载 作者:可可西里 更新时间:2023-11-01 09:29:36 25 4
gpt4 key购买 nike

欢迎...

我的 Meteor 项目有 2 个集合

1 - 关注者

"_id": "_id",
"follower": "username1",
"following": "username2"
}

2- 用户

"_id": "_id",
"username": "username",
[...]
}

我想按照最关注的方式对用户进行排序

谁能帮帮我?....

最佳答案

我建议将“followers”集合作为一个对象放在每个“users”文档中。将它们放在单独的集合中然后必须根据用户 ID 来回引用是没有意义的。它只是在您的数据库中占用更多空间。只需在每个用户内部创建一个名为“follows”或具有相同结构的类似对象(尽管创建“follower”和“following”数组)。像这样:

"users":{
"_id":_id,
"username":"username",
"follows":{
"followers":["username 1","username 2"],
"following":["username 3", "username 4"],
}
}

一旦您拥有它以便每个用户文档都有自己的“关注”对象,您可以使用“聚合”功能对用户进行排序 MongoDB Aggregate .以下代码根据 followers 数组的长度进行排序。你会做一个单独的“关注”,将“$followers”换成“$following”。

db.users.aggregate(
[
{
$project: {
"length": { $size: "$followers" }
},
{ "$sort": { "length": -1 } },
}
]
)

当然,这可能需要进行一些调整。只是帮助您朝着正确的方向前进。

关于javascript - meteor :如何按关注最多的用户排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35232030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com