欢迎......
我的Meteor项目中有2个系列
1 - 粉丝
"_id": "_id",
"follower": "username1",
"following": "username2"
}
2-用户
"_id": "_id",
"username": "username",
[...]
}
我想按照以下方式对用户进行排序
任何人都可以帮助我吗?....
答案 0 :(得分:4)
我建议把这些'粉丝'收集作为每个用户内部的对象'文献。将它们放在单独的集合中然后必须根据用户的ID来回引用是没有意义的。它只占用了你的数据库中的更多空间。只需在每个用户中创建一个名为'的对象'或者具有相同结构的类似东西(虽然make' follower'以及'在'数组之后)。像这样:
"users":{
"_id":_id,
"username":"username",
"follows":{
"followers":["username 1","username 2"],
"following":["username 3", "username 4"],
}
}
一旦你拥有它,所以每个用户文档都有自己的'跟随'对象,您可以使用'聚合'对用户进行排序。功能MongoDB Aggregate。以下代码根据关注者数组的长度进行排序。你可以单独选择一个''交换“追随者”#39;使用" $跟随"。
db.users.aggregate(
[
{
$project: {
"length": { $size: "$followers" }
},
{ "$sort": { "length": -1 } },
}
]
)
当然,这可能需要一些调整。只是帮助引导你朝着正确的方向前进。