我有下一篇文章结构:
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
}
});
所以我想要的是将一篇按created
字段排序的最新文章作为一组categoryIds
。例如,我有类似电影,电视,音乐,书籍的类别,我想为每个类别拍摄最新文章。是否可以在一个查询中执行?
答案 0 :(得分:1)
首先为创建的日期和类别ID创建索引:
db.article.ensureIndex({ “创造”: - 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})
可能没有语法错误