我有两个表示帖子和类别文档的架构。我正在尝试使用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}}})
答案 0 :(得分:2)
填充好不会sort
根/外文档。仅在populate
个内部引用文档中传递了这些选项。您必须在此处使用sorts
对父文档进行排序,与aggregation
查询相比,$lookup
才能做得更好。
populate