我有四份文件。每个文档都有一个序列号,我想从每个序列号中获取一个文档。它应该是序列号的最后一个文件。
例如。
收集名称:销售
Serial name date
10000 A 2014
10000 B 2015
20000 C 2014
20000 C 2015
我想列出序列10000的第二个文档和序列20000的第四个文档。
var list=Sales.findOne({}, {
sort: {date:-1}
});
我该怎么做?我尝试了很多东西,但我做不到。
谢谢。
答案 0 :(得分:1)
也许您可以通过aggregation
完成此操作,如下所示
> db.sales.aggregate([
// sort by date
{$sort: {date: -1}},
// group by `Serial`, and retrieve the first element from group result, which is latest date.
{$group: {_id: '$Serial',
name: {$first: '$name'},
date: {$first: '$date'}
}}
]);