javascript - 如何在 Mongoose 中使用减号按对象属性排序?

标签 javascript node.js mongodb mongoose

我正在尝试通过对属性使用减号来对 mongoose 进行排序,如果我直接对属性进行操作,它似乎工作正常(两种方式)。 所以这样的事情对我有用:

.sort({ name: -1 })

这也行

.sort({ '-name': -1 })

但是当我尝试根据子属性进行排序时,它只能以一种方式工作,

{ 'payment.cash.budget': -1 }

以上查询工作正常。 但以下内容不起作用:

{ '-payment.cash.budget': -1 }

为什么 Mongoose 会那样做? 我不能(轻松地)使用“1”而不是“-1”,因为查询来自前端。

  • Mongoose :4.13.0
  • MongoDB:3.6

最佳答案

当使用带属性名称的减号进行 Mongoose 排序时,您只需传递字符串本身,而不是对象:

.sort('payment.cash.budget')  // Ascending

.sort('-payment.cash.budget') // Descending

关于javascript - 如何在 Mongoose 中使用减号按对象属性排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52744794/

相关文章:

javascript - 使用 Jquery AJAX 检索 PHP post 请求数据

node.js - 为什么这个 Promise 的 then 回调从未被调用?

collections - MongoDB - 从上限集合中捕获丢弃的对象

node.js - mongodb 的 $project 是否有可能返回一个数组?

mongodb - MongoDB 的 Map/Reduce 排序有用吗?

Javascript - 如何将数据传递给 promise 返回

javascript - 刷新包含 PHP 代码的 div,而不刷新页面

javascript - Laravel - PHP array_push 为 Ajax 生成编号索引

javascript - Sequelize 播种机找不到模型的正确列名称

mysql - Node.js - 插入添加 0 而不是字符串