小编Sah*_*hal的帖子

重命名($project)数组中的字段 - MongoDB

我有一个像下面这样的文件,

{
    "_id" : "59ba903dacea50d0d7d47168",
    "sections" : [ 
        {
            "_id" : "59d9dd7947ce651544c5d4c1",
            "sectionName" : "Section 1"
        }, 
        {
            "_id" : "59d9dd8147ce651544c5d4c2",
            "sectionName" : "Section 2"
        }, 
        {
            "_id" : "59d9dd9747ce651544c5d4c3",
            "sectionName" : "Section 3"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我正在使用投影将字段 _id 重命名为 id 和 sectionName 以使用查询命名

db.getCollection('tmp').aggregate([
{$project:{"sections.id":"$sections._id", "sections.name":"$sections.sectionName"}}
])
Run Code Online (Sandbox Code Playgroud)

所需的输出是:

{
    "_id": "59ba903dacea50d0d7d47168",
    "sections": [
        {"id": "59d9dd7947ce651544c5d4c1", "name": "Section 1"}, 
        {"id": "59d9dd8147ce651544c5d4c2", "name": "Section 2"}, 
        {"id": "59d9dd9747ce651544c5d4c3", "name": "Section 3"}
    ]
};
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用,我做错了什么?

请注意,我并没有像在这个问题中那样尝试更新此文档,我想以所需的格式投影该文档。

mongodb mongodb-query aggregation-framework

6
推荐指数
1
解决办法
3451
查看次数