Mongodb使用查找查询生成行号

Mongodb使用查找查询生成行号,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我在mongo collection中拥有以下文件: {name: "Test1", "date" : "2014-09-01"}, {name: "Test2", "date" : "2014-08-01"} {name: "Test3", "date" : "2014-07-01"} {name: "Test4", "date" : "2014-06-01"} {name: "Test5", "date" : "2014-05-01"} {name: "Test6", "date" : "2

我在mongo collection中拥有以下文件:

{name: "Test1", "date" : "2014-09-01"},
{name: "Test2", "date" : "2014-08-01"}
{name: "Test3", "date" : "2014-07-01"}
{name: "Test4", "date" : "2014-06-01"}
{name: "Test5", "date" : "2014-05-01"}
{name: "Test6", "date" : "2014-04-01"}
我正在使用java对mongo进行聚合查询,以查找特定日期之间的文档。查询的输出如下所示:

{name : Test3},
{name : Test4}
在这个输出中,我希望有一个行号,它应该从0开始,并且应该有唯一的值,就像Oracle的rownum一样。在mongo有可能吗


谢谢。

尝试在mongo Db中查找$unwind operator。 以下链接将有所帮助: 过滤完文档后,应用“展开”操作符以获取结果并设置排名。希望下面的例子也能说明这一点。 我们基本上是先创建一个数组,然后将该数组与用作rownum/rank的数组索引一起展开

[
{ "$match": { }},
{"$group": {"_id": { "statement.actor.mbox":"$statement.actor.mbox", "organisation":"$organisation"},"points": { "$sum": "$statement.result.extensions.resultExt:pointsEarned"},"coins": { "$sum": "$statement.result.extensions.resultExt:coinsEarned"}}},
{"$sort": { "points" : -1 }},
{"$group": {"_id": 1,"results": {"$push": {"id": "$_id", "points": "$points", "coins": "$coins"}} }},
{"$unwind": {"path": "$results", "includeArrayIndex": "rank"}},
  {"$project": {
    "id": "$results.id",
    "points": "$results.points",
    "coins": "$results.coins",
    "rank": { "$add": [ "$rank", 1 ] }
  }}

]