Python mongo db$推送查找最大数量的内容

Python mongo db$推送查找最大数量的内容,python,mongodb,Python,Mongodb,我想写pipleline代码,这给了我5个推文最多的用户,我尝试使用$push,我查阅了mongo db文档,它还显示了$sort。我在文本行中发现了一个语法错误,但至少对我来说这不是一个明显的错误。 如果有人能给我指出正确的方向,那就太好了,因为我看了一些视频,读了一些页面,但没有发现我的代码有什么问题 pipeline = [ {"$group" : { "_id": "$user.screen_name",

我想写pipleline代码,这给了我5个推文最多的用户,我尝试使用$push,我查阅了mongo db文档,它还显示了$sort。我在文本行中发现了一个语法错误,但至少对我来说这不是一个明显的错误。 如果有人能给我指出正确的方向,那就太好了,因为我看了一些视频,读了一些页面,但没有发现我的代码有什么问题

pipeline = [
            {"$group" : {
                        "_id": "$user.screen_name",
                        {
                        "$push": {"texts" : "$text"}},
                        {
                        "$sort" : {"texts":-1}}},
                        {
                        "$limit" :5}}   

            ]
为您提供了一种非常好的结构化聚合工作方式,并提供了示例

根据您的问题,您不止一次地问相同的问题。

无论如何,在您的查询中,
$group
不应包含
$sort
$limit
,并且
$push
放置错误。因此,您的聚合查询应如下所示:

pipeline = [{
  "$group": {
    "_id": "$user.screen_name",
    "teet_data": {
      "$push": {
        "texts": "$text"
      }
    }
  }
}, {
  "$sort": {
    "texts": -1
  }
}, {
  "$limit": 5
}]
“我想编写pipleline代码,这给了我5个推文最多的用户”

我不能说这是否比@yogesh的答案有所改进,但根据您的描述,您只需要计算推特的数量。不要让它们沿着你的管道传递。至少,使用
$sum
会大大提高内存效率:

pipeline = [{
  "$group": {
    "_id": "$user.screen_name",
    "count": { "$sum": 1 }
    }
  }
}, {
  "$sort": {
    "count": -1
  }
}, {
  "$limit": 5
}]

对不起,我从未使用过MongoDB的聚合管道。什么是“teet_数据”?结果“记录”的名称是任意的吗?祝您好运,您的有效答案被接受;)@SylvainLeroux yes
tweet_data
是一个任意值name@SylvainLeroux对不起,误会了,这是为回答者准备的,因为OP从来没有接受过任何之前关于相关问题的好答案:P@StephanKetterer这将是一个好主意,通过你的老问题,并接受这些答案,帮助你现在知道如何-将有助于保持一个良好的名称在网站上:)你好斯蒂芬。我们都希望您在StackOverflow上找到的答案对您有用。如果是这样,请记住这一点。接受是特别重要的,因为这会将问题标记为“已回答”,并向从互联网上访问此问题的其他用户提供有关您如何解决问题的反馈。