不确定这是否是提出这个问题的正确位置,但我会尝试一下。
这是我的架构的简化版本
var mediaSchema = new Schema({
remote_url: {type: String},
media_type: {type: String, enum: ['jpg','png']},
media_version: {type: String},
public_id: {type:String},
resource_type: {type: String},
bytes: {type: Number}
})
module.exports = mongoose.model('Media', mediaSchema);
var User = new Schema({
....
pictures: [Media.schema],
sorted_pictures: [{ type: Schema.Types.ObjectId, ref: 'Media' }]
});
module.exports = mongoose.model('User', User);
我将Media文档嵌入用户文档中。我还在嵌入文档上有一个ObjectIds排序数组,以支持客户定义的排序
我正在尝试使用以下方式查询以下内容:
User.findById(req.user, {sorted_pictures:1})
.populate({path:'sorted_pictures', model: 'Media'})
.exec(....
但是我得到一个空数组。
我在这里做错了什么?