传递一个值来访问对象 - Mongodb

在 $group 完成后,我在 $_id 中有一个数字。


但是,我需要这个值来访问一个对象并返回你的字符串。


const week = {

  1: 'Domingo',

  2: 'Segunda',

  3: 'Terça',

  4: 'Quarta',

  5: 'Quinta',

  6: 'Sexta',

  7: 'Sábado',

}


db.trips.aggregate(

  [

    {

      $group: {

        _id: {

          $dayOfWeek: "$startTime"

        },

        qtd: {

          $sum: 1

        }

      }

    },

    

    {

      $project: {

        diaDaSemana: week["$_id"],

        total: "$qtd",

      }

    }

  ]

);

我尝试了很多次,但没有奏效。

感谢帮助。


胡子哥哥
浏览 106回答 1
1回答

陪伴而非守候

聚合管道不像 javascript 那样取消引用对象。如果您将天数作为数组传递,则在$project阶段中,您可以使用$arrayElemAt来获取相应的字符串。您将需要第零个元素来偏移索引,以便“Domingo”位于索引 1:const week = [  'Nada',  'Domingo',  'Segunda',  'Terça',  'Quarta',  'Quinta',  'Sexta',  'Sábado',]然后在$project阶段:    diaDaSemana: {$arrayElemAt: [week, "$_id"]},
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript