我有下一篇文章结构:
var articleSchema=new Schema({
id : Number,
title : String,
sefriendly : String,
created : Date,
categories: [
{
id: Number,
name: String,
sefriendly: String,
image: String
}
],
author: {
id: Number,
name: String
}
});
所以我想要的是根据一组 categoryIds
的 created
字段排序一篇最新文章。例如,我有电影、电视、音乐、书籍等类别,我想为每个类别获取最新文章。是否可以在一个查询中完成?
最佳答案
首先为创建日期和类别 ID 创建索引:
db.article.ensureIndex({"created":-1,"categories.id":1})
然后获取最新文章:
db.article.aggregate( [ {$unwind : "$categories"} { $sort: {"created":-1,"categories.id":1 } }, { $group: { _id: {"categories_id":"$categories.id"}, lastDate: { $last: "$created" } } } ] ,{"allowDiskUse":true})
也许有一点语法错误
关于javascript - 如何获取mongodb中每个类别的最新文章?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33555968/