【发布时间】:2020-11-28 14:17:30
【问题描述】:
我有 MongoDB 集合 items 和以下文档:
{ "name": "First", "value": 8 },
{ "name": "Second", "value": 2 },
{ "name": "Third", "value": 5 }
我想按name 或value 对它们进行排序,然后为它们中的每一个添加序列号(index 属性)(第一项将具有"index": 1,第二项将具有"index": 2,等等)。所以对于这个查询:
db.items.aggregate([{ $sort: { "value": 1 } }])
结果应该是:
{ "name": "Second", "value": 2, "index": 1 },
{ "name": "Third", "value": 5, "index": 2 },
{ "name": "First", "value": 8, "index": 3 }
这也适用于$skip。使用{ "$skip": 1 },结果应该是索引为2, 3 的项目,而不是1, 2。有没有什么方法可以使用纯 MongoDB 来做到这一点,而不需要任何应用程序逻辑?
【问题讨论】:
-
您的问题是跳过排序输出还是在排序结果中添加数字?
-
@Gibbs 添加一个数字来排序结果。