【mongoose】aggregate 如何查询返回下标

现查询如下:

Modal.aggregate([
    { $match: {_id: 'xxx'}}
])

查询结果:

[
    {
        name: 'n1',
        sex: 1
    },
    {
        name: 'n2',
        sex: 2
    },
    {
        name: 'n3',
        sex: 1
    }
]

如何在aggregate查询出当前对象索引,返回给n字段,如下:

[
    {
        n: 0,
        name: 'n1',
        sex: 1
    },
    {
        n: 1,
        name: 'n2',
        sex: 2
    },
    {
        n: 2,
        name: 'n3',
        sex: 1
    }
]

求大神解答

阅读 2.4k
1 个回答

第一点,你match的是_id,正常情况下应该是只会查询到一条文档的,怎么会返回多条呢?

假设你的_id是非unique的,你想要给每条文档新增一个index属性,这也是很奇怪的想法,因为如果还有后续的聚合操作的话,文档顺序总是改变的,加index完全没必要;如果没有后续聚合了,那么返回的文档进行一次map操作手动添加即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进