如何按特定顺序对猫鼬进行排序?

Posted

技术标签:

【中文标题】如何按特定顺序对猫鼬进行排序?【英文标题】:How to sort in mongoose by specific order? 【发布时间】:2020-12-18 19:08:19 【问题描述】:

我有猫鼬模型:

const mongoose = require('mongoose')

const  Schema  = mongoose

const schema = new Schema(
    Name:  type: String , 
    Category:  type: String ,
    Price:  type: Number  
)

module.exports = mongoose.model('Product', schema)

我必须按类别字段排序。排序顺序是

['Clothes', 'Accessories', 'Footwears']

我是怎么做到的?

【问题讨论】:

我的意思是我该怎么做? 这能回答你的问题吗? How to sort in mongoose? 【参考方案1】:

MongoDB 服务器不提供任何方式来提供自定义排序功能。

javascript 可以,因此您可以将查询结果作为数组获取,并使用自定义比较函数与Array.sort

【讨论】:

感谢您的回复。我通过创建新值作为 CategoryWeight 来解决它。当我保存它时,我会设置重量【参考方案2】:

我通过添加类别的权重来解决它。现在我的模型是这样的:

const schema = new Schema(
    Name:  type: String , 
    Category:  type: String ,
    CategoryWeight:  type: Number , 
    Price:  type: Number  
)

我是这样排序的:

const products = await Product.find().sort('-CategoryWeight')

【讨论】:

以上是关于如何按特定顺序对猫鼬进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python按特定顺序对文件名进行排序

如何对大量 csv 文件进行排序以按特定顺序读取它们?

按特定顺序对名称数组进行排序

如何让 Jest 按特定顺序运行测试?

使用比较器按特定顺序对对象列表进行排序

在 Solr 中按特定顺序按多个字段排序