猫鼬填充排序_ Mongoose Node.js

时间:2019-04-27 06:05:43

标签: node.js mongodb mongoose aggregation-framework

我有两个表示帖子和类别文档的架构。我正在尝试使用category.order属性对帖子进行排序。订单属性是一个数字字段。

const postSchema = mongoose.Schema({
    title: {
        type: String,
        max: 200,
    },
    body: {
        type: String,
        max: 10000,
    },
    categories: {
        type: mongoose.Schema.ObjectId,
        ref: 'Category',
        required: true
    }
})
module.exports = mongoose.model('Post', postSchema);


const categorySchema = mongoose.Schema({
    name: {
        type: String,
        max: 30,
        required:true
    },
    order: {
        type: Number,
        unique: true
    },
})
module.exports = mongoose.model('Category', categorySchema);

我知道排序仅适用于数字字段。我在Web和StackOverflow甚至猫鼬文档中搜索了很多类似问题,但是我的查询不起作用。它可以回复我的帖子,但排序顺序不起作用。 查询:

Post.find({}).populate({path:'categories', select:'order', options:{sort:{order:1}}})

1 个答案:

答案 0 :(得分:2)

填充好不会sort根/外文档。仅在populate个内部引用文档中传递了这些选项。您必须在此处使用sorts对父文档进行排序,与aggregation查询相比,$lookup才能做得更好。

populate