【问题标题】: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']

我是怎么做到的?

【问题讨论】:

标签: node.js mongodb 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')

【讨论】:

    猜你喜欢
    • 2016-11-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2020-11-05
    相关资源
    最近更新 更多