【问题标题】:Trying to sort posts by the number of likes mongodb尝试按喜欢的数量对帖子进行排序 mongodb
【发布时间】:2019-01-25 14:22:19
【问题描述】:

我正在尝试使用 expressjs 和 mongodb 按喜欢的数量对帖子进行排序。

   get "postsByLikes/:category", (req, res, next) ->
      category = req.params.category
      db.posts.aggregate([
        {$match:
          type: "post"
          category: category}
        {$project:
          likesCount:
            $size: "like"}
        {"$sort": 
          "likesCount": -1}
      ]).toArray (err, posts) ->

        res.send(posts)

这个查询有什么问题?

【问题讨论】:

  • 我们怎么知道?请说明您需要什么
  • 你错过了 $ 吗?应该是$size:"$like"
  • @Veeram 谢谢这就是问题所在!随时发布答案,我会将其标记为正确。

标签: javascript mongodb coffeescript


【解决方案1】:

您没有提到输出是什么,但根据您的代码,您似乎只获得了没有源文档的数字。原因是你使用:

{$project:
      likesCount:
        $size: "like"}

获取计数。问题是$project 将只返回指定的字段(在这种情况下只是likesCount)。要解决此问题,您需要 $addFields 而不是 $project 来获取源文档和新的计算字段:

{$addFields:
      likesCount:
        $size: "$like"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多