mongo db$push查找最大数量的对象

2024-05-16 11:45:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

            ]

Tags: 代码用户文档文本db视频mongo页面
2条回答

“我想写pipleline代码,这给了我5个tweets最多的用户”

我不能说这是不是比@yogesh的答案有所改进,但是根据你的描述,你只需要统计推特。不要让它们在你的管道里通过。至少,使用$sum会更节省内存:

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

这个aggregation pipeline document为您提供了一个非常好的结构化方法来说明聚合是如何工作的,并提供了一些示例。你知道吗

根据你的问题,你不止一次地问同样的问题。

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

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

相关问题 更多 >