如何在 mongodb javascript 中对数据库数据进行排序? (节点.js)

Posted

技术标签:

【中文标题】如何在 mongodb javascript 中对数据库数据进行排序? (节点.js)【英文标题】:How do I sort database data in mongodb javascript? ( node.js ) 【发布时间】:2021-02-13 00:05:30 【问题描述】:

我在 Discord.js 中创建机器人。它有等级系统(你可以通过在聊天中写东西来获得),我想制作一个排行榜,但我必须以某种方式对数据库进行排序才能做到这一点,例如这就是它现在的样子(这是一个例子)

userId:"347707015956791297"
level:3
xp:231

userId:"267229922693611520"
level:1
xp:36

userId:"124575187579568129"
level:1
xp:81

userId:"466944003674472482"
level:4
xp:468

我如何让它看起来像这样(如果这个人有相同的水平,那么它通过 xp 对其进行排序):

userId:"347707015956791297"
level:4
xp:468

userId:"267229922693611520"
level:3
xp:231

userId:"124575187579568129"
level:1
xp:81


userId:"466944003674472482"
level:1
xp:36

【问题讨论】:

mongodb 文档介绍了如何对docs.mongodb.com/manual/reference/operator/aggregation/sort进行排序 你必须按降序排序,即model.find().sort(level: -1) 【参考方案1】:

要按两个字段排序,只需在find 之后调用sort 并指明必要的字段和升序/降序:

db.users.find( ).sort(  level: -1, xp: -1  )

【讨论】:

由于某种原因,如果我使用它,就会出现这个错误:TypeError: Cannot read property 'find' of undefined 这意味着db.users 未定义 您应该注明您的型号名称而不是users

以上是关于如何在 mongodb javascript 中对数据库数据进行排序? (节点.js)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mongodb 中对多个数组使用聚合映射和过滤器

如何在Java中对MongoDB按日期进行查询统计

如何在 MongoDB 中对聚合查询结果进行分页并获得总文档数(Node.js + Mongoose)?

如何在 Javascript 中对哈希表进行排序?

如何在javascript中对多维数组进行排序

如何在 Javascript 中对对象进行切片?