【问题标题】:If else if cond in mongodb aggregationif else if cond in mongodb 聚合
【发布时间】:2019-02-25 14:31:02
【问题描述】:

我知道以前有人问过这个问题,但我似乎找不到答案,如何在聚合 $project 中添加条件

Schedul.aggregate([
    { $match: { flag: 1 } },
    {
        $project: {
            "name": "$name",
            "day_of_week": ("$day_of_week" === 0) ? 'Sunday' : ("$day_of_week" === 1) ? 'Monday' : ("$day_of_week" === 2) ? 'Tuesday' : ("$day_of_week" === 3) ? 'Wednesday' : ("$day_of_week" === 4) ? 'Thursday' : ("$day_of_week" === 5) ? 'Friday' : 'Saturday',
        }
    },
])

【问题讨论】:

    标签: node.js mongodb express mongoose aggregation-framework


    【解决方案1】:

    您可以改用$switch 聚合。

    Schedul.aggregate([
      { "$match": { "flag": 1 }},
      { "$project": {
        "name": "$name",
        "day_of_week": {
          "$switch": {
            "branches": [
              { "case": { "$eq": ["$day_of_week", 0] }, "then": "Sunday" },
              { "case": { "$eq": ["$day_of_week", 1] }, "then": "Monday" },
              { "case": { "$eq": ["$day_of_week", 2] }, "then": "Tuesday" },
              { "case": { "$eq": ["$day_of_week", 3] }, "then": "Wednesday" },
              { "case": { "$eq": ["$day_of_week", 4] }, "then": "Thrusday" },
              { "case": { "$eq": ["$day_of_week", 5] }, "then": "Friday" }
            ],
            "default": "Saturday"
          }
        }
      }}
    ])
    

    【讨论】:

      猜你喜欢
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多