MongoDB - 列出每个序列号中的一个文档

时间:2016-03-01 07:56:48

标签: node.js mongodb meteor

我有四份文件。每个文档都有一个序列号,我想从每个序列号中获取一个文档。它应该是序列号的最后一个文件。 例如。
收集名称:销售

Serial  name  date
10000   A     2014
10000   B     2015
20000   C     2014 
20000   C     2015

我想列出序列10000的第二个文档和序列20000的第四个文档。

 var list=Sales.findOne({}, {
      sort: {date:-1}
    });

我该怎么做?我尝试了很多东西,但我做不到。

谢谢。

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'}
               }}
        ]);