从另一个的值中生成$ project中的新字段

时间:2017-06-23 00:25:28

标签: mongodb

我有一个用户集合,其中一个名为level的字段的数值为0到3.我试图返回一个生成的字段,其中包含用户级别的文本表示。到目前为止,我有这个,但它取代了level字段。

{ $project: {
                '_id': 1,
                'name': 1,
                'email': 1,
                'username': 1,
                'password': 1,
                'registered': 1,
                'level': {
                            $switch: { 
                                        branches: [
                                          { case: 0, then: 'Pending' },
                                          { case: 1, then: 'Regular' },
                                          { case: 2, then: 'User manager' },
                                          { case: 3, then: 'Administrator' }
                                        ],
                                        default: 'Unknown'
                                     }
                },

            }

我希望在我的聚合输出中有一个名为levelName的字段。我该怎么做呢?我试过这个:

'levelName': {
            $switch: { 
                        branches: [
                          { case: { level: 0 }, then: 'Pending' },
                          { case: { level: 1 }, then: 'Regular' },
                          { case: { level: 2 }, then: 'User manager' },
                          { case: { level: 3 }, then: 'Administrator' }
                        ],
                        default: 'Unknown'
                     }
},

但无济于事。

0 个答案:

没有答案