簡體   English   中英

嘗試按喜歡的數目對mongodb進行排序

[英]Trying to sort posts by the number of likes mongodb

我正在嘗試使用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)

這個查詢怎么了?

您沒有提到輸出是什么,但是根據您的代碼,您似乎只獲得沒有源文檔的數字。 原因是您使用了:

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

得到計數。 問題是$project將僅返回指定的字段(在這種情況下,就像likesCount一樣)。 要解決此問題,您需要$ addFields而不是$project來獲取源文檔和新的計算字段:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM