首页 > 解决方案 > 如何使用带有自定义字段的 mongoose-paginate 过滤架构

问题描述

我有一个包含这些数据的架构:

const Products = new mongoose.Schema({
    picture: {type: String, require: true},
    title: {type: String, require: true},
    description: {type: String, require: true},
    price: {type: Number, require: true},
    category: {type: String, require: true}
})

Products.plugin(mongoosePaginate)

export default mongoose.model('products', Products)

我从 req.query 获得一个类别字段,并使用 populate 按类别对数组进行排序:

const {category} = req.query

const products = await Products.paginate({}, {
    populate: [{
        path: "category",
        select: category
    }]
}, (err, res) => {

    if(err){
        return res.status(500).json(err)
    }
   
    return res
})
    
return res.json(products)

但我收到此错误:

CastError: Cast to ObjectId failed for value "dolls" (type string) at path "_id" for model "products"

标签: mongodbexpressmongoose

解决方案


推荐阅读