Javascript Meteor:如何按大多数用户分类?
欢迎 我的Meteor project 2系列中有 1-追随者Javascript Meteor:如何按大多数用户分类?,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,欢迎 我的Meteor project 2系列中有 1-追随者 "_id": "_id", "follower": "username1", "following": "username2" } 2-用户 "_id": "_id", "username": "username", [...] } 我想按以下方法对用户进行排序: 有人能帮我吗?…我建议将“追随者”集合作为对象放在每个“用户”文档中。将它们放在单独的集合中,然后根据用户的ID来回引用是没有意义的。这只会占用数据库
"_id": "_id",
"follower": "username1",
"following": "username2"
}
2-用户
"_id": "_id",
"username": "username",
[...]
}
我想按以下方法对用户进行排序:
有人能帮我吗?…我建议将“追随者”集合作为对象放在每个“用户”文档中。将它们放在单独的集合中,然后根据用户的ID来回引用是没有意义的。这只会占用数据库中更多的空间。只需在每个用户内部创建一个名为“followers”的对象或具有相同结构的类似对象(尽管创建“follower”和“follower”数组)。大概是这样的:
"users":{
"_id":_id,
"username":"username",
"follows":{
"followers":["username 1","username 2"],
"following":["username 3", "username 4"],
}
}
一旦有了它,每个用户文档都有自己的“follows”对象,就可以使用“聚合”功能对用户进行排序。下面的代码根据followers数组的长度进行排序。您可以为“following”单独执行一个操作,将“$following”替换为“$following”
当然,这可能需要一些调整。只是帮助您朝着正确的方向前进。请告诉我这是否对您有帮助或有效。如果成功了,如果你不介意的话,就把它作为答案。@MohammadKhojaly当然!我不断地学习新的东西,但惊讶于流星是多么强大而优雅。以下是我在Meteor中开发时发现的一些非常有用的文章:||
db.users.aggregate(
[
{
$project: {
"length": { $size: "$followers" }
},
{ "$sort": { "length": -1 } },
}
]
)