Mongoose查询:从Post Schema中填充前两个评论
我有3个集合:用户,发布和评论。 post有多个评论。 我想抓住50个职位,填充作者,填充评论,但我只想要按date(_id)sorting前2个最多投票评论
const PostSchema = new Schema({ author: { type: Schema.Types.ObjectId, ref: 'User' }, content: String, comments: [{ type: Schema.Types.ObjectId, ref: 'Comment' }] }); const Post = mongoose.model('Post', PostSchema); const CommentSchema = new Schema({ author: { type: Schema.Types.ObjectId, ref: 'User' }, content: String, votes: Number }); const Comment = mongoose.model('Comment', CommentSchema); Post .find({}) .limit(50) .populate('author') .populate('comments') ...
我不知道如何做到这一点。
你可以使用mongoose populate options
来定制你的人口。 在这种情况下limit
其limit
为2。
尝试这个:
Post .find({}) .limit(50) .populate('author') .populate({ path :'comments', options : { sort: { votes: -1 }, limit : 2 } });
如果你想更多的cusomization,你可以使用mongoose mongoose Query conditions
(select,匹配,模型,path等)和options
一起。
阅读mongoose种群文档以获取更多详细信息。
- 为什么当我运行POST请求时,它不会返回我在Mongoose模式定义中定义的JSON?
- Mongodb tailable游标,高CPU使用率 – nodejs + mongodb
- 在meteor.js中对地址服务器端进行地理编码,然后将坐标插入到数据库中
- 在Node.js中创build同步MongoDB查询的正确方法是什么?
- Mongoose不会让我插入空值的数字?
- 什么是在Openshift的MongoDB大小限制?
- Mongodb / Mongoose查询
- Loopback.js – 将基础“用户”模型扩展为“用户”,而不需要MongoDB创build“用户”和“用户”集合
- 如何将返回值推入数组mongodb?