【问题标题】:In MongoDB how do I sort an object based on their values?在 MongoDB 中,如何根据对象的值对对象进行排序?
【发布时间】:2021-01-08 18:46:20
【问题描述】:

Book 是一个可供用户投票选择的集合。当用户在客户端点击一个赞按钮时,投票会增加 1。我希望根据投票数按降序对集合进行排序,这会反映在前端。

投票正在更新并显示在前端,我只是无法使用排序功能。

update: function (req, res) {
    console.log("this is reqbody" + JSON.stringify(req.body))
    db.Book
      .findOne({ bookID: req.body.bookID }, (err, result) => {
        console.log(result);
        console.log(result.vote)
        // let voted = result.vote + 1;
        db.Book.updateOne({ _id: result._id }, { vote: result.vote + 1 })
        
        db.Book.find({}).sort({vote: 'decending'}).exec(function(err, docs)
{
        })
        .then(dbModel => {
            console.log(JSON.stringify(dbModel))
            res.json(dbModel)
          }
          )
      }
      )
  },

【问题讨论】:

标签: node.js reactjs mongodb mongoose mongoose-schema


【解决方案1】:

根据documentation,您应该使用1-1sort() mongodb 调用中订购您的订单。

在 sort 参数中指定要排序的一个或多个字段,值 1 或 -1 分别指定升序或降序。

db.Book.find({}).sort({vote: -1})

【讨论】:

  • 感谢您指出这一点。在文档中完全忽略了这一点。能够使用值 -1 使其工作。
猜你喜欢
  • 2013-11-25
  • 2010-11-16
  • 2013-10-22
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多