【问题标题】:Make a calculated field in mongo db在mongodb中创建一个计算字段
【发布时间】:2020-07-04 22:08:55
【问题描述】:

我有两个集合,一个是员工,另一个是薪水。我想在员工收款电话月薪中创建一个计算字段。如何从 Salary 集合中访问 SALARY 并除以 12?

以下是我在 MongoDB 中包含的一些信息:

db.Salary.insertMany([

  {
    "POSITION": "1",
    "BRANCH_SIZE": "HQ",
    "SALARY": "150000"
  },
  {
    "POSITION": "2",
    "BRANCH_SIZE": "HQ",
    "SALARY": "100000"
  },
  {
    "POSITION": "3",
    "BRANCH_SIZE": "HQ",
    "SALARY": "70000"
  },
  {
    "POSITION": "4",
    "BRANCH_SIZE": "HQ",
    "SALARY": "30000"
  },
  {
    "POSITION": "5",
    "BRANCH_SIZE": "HQ",
    "SALARY": "56000"
  }
])

db.Employee.insertMany([

  {
    "EMPLOYEE_NO": "1000",
    "LNAME": "Wyatt",
    "FNAME": " Stefan"
    "CITY": "MANKATO",
    "STATE": "MN",
    "ZIP": "56001",
    "STATUS": "1",
    "POSITION": "1"
  },
  {
    "EMPLOYEE_NO": "1029",
    "LNAME": "Martin",
    "FNAME": "Edward",
    "STATUS": "1",
    "START_DATE": "02-MAY-95",
    "END_DATE": "",
    "BRANCH_NO": "103",
    "BRANCH_SIZE": "MD",
    "POSITION": "3"
  },
  {
    "EMPLOYEE_NO": "1089",
    "LNAME": "Stewart",
    "FNAME": "Macy",
    "CITY": "SAINT PAUL",
    "BRANCH_NO": "101",
    "BRANCH_SIZE": "BG",
    "POSITION": "4"
  }
])

我想为每个员工制定月薪。我怎样才能做到这一点? 提前致谢。 任何帮助将不胜感激。

【问题讨论】:

标签: mongodb calculated-field


【解决方案1】:

您可以使用$lookup$divide 运算符从工资集合中获取工资,并将其中一个字段除以12。

示例:

db.employee.aggregate([{
    $lookup: {
      from: 'salary',
      localField: 'POSITION',
      foreignField: 'POSITION',
      as: 'salary',
    },
  },
  {
    {
      $project: {
        dividedSalary: {
          $divide: ["$salary.SALARY", 12]
        }
      }
    }
  }
])

【讨论】:

  • 您好,收到此错误:-- 2020-06-24T17:50:22.457-0500 E QUERY [js] SyntaxError: expected property name, got '{' : @(shell):10:4
  • 您是否已将上述所有查询替换为您拥有的原始数据?例如集合名称和字段名称。
  • 是的,我在 float foarmat 中有薪金字段。 db.Employee.aggregate([{ $lookup: { from: 'Salary', localField: "POSITION", foreignField: "POSITION", as: 'MonthlySalary', }, }, { { $project: { divideSalary: { $除法:["$Salary.SALARY", 12] } } } } ])
  • 您必须在$divide: ["$Salary.SALARY", 12] 部分更改为$divide: ["$MonthlySalary.SALARY", 12]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-12
  • 2011-01-24
  • 2021-12-25
相关资源
最近更新 更多