Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor:如何按大多数用户分类?_Javascript_Mongodb_Meteor - Fatal编程技术网

Javascript Meteor:如何按大多数用户分类?

Javascript Meteor:如何按大多数用户分类?,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,欢迎 我的Meteor project 2系列中有 1-追随者 "_id": "_id", "follower": "username1", "following": "username2" } 2-用户 "_id": "_id", "username": "username", [...] } 我想按以下方法对用户进行排序: 有人能帮我吗?…我建议将“追随者”集合作为对象放在每个“用户”文档中。将它们放在单独的集合中,然后根据用户的ID来回引用是没有意义的。这只会占用数据库

欢迎

我的Meteor project 2系列中有

1-追随者

"_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 } },
      }
   ]
)