两个Int32字段的Mongodb相减将导致空值

两个Int32字段的Mongodb相减将导致空值,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我正在对一些数据进行聚合,其中包括以下投影 查询: {"$project": { "subbedout": {"$toInt": {"$ifNull": ["$outmin", "$endgame"]}}, "subbedin": {"$toInt": {"$ifNull": ["$inmin", 0]}}, "minutes": {"$subtract": ["$subbedout", "$subbedin"]}

我正在对一些数据进行聚合,其中包括以下投影

查询:

{"$project": {
            "subbedout": {"$toInt": {"$ifNull": ["$outmin", "$endgame"]}},
            "subbedin": {"$toInt": {"$ifNull": ["$inmin", 0]}},
            "minutes": {"$subtract": ["$subbedout", "$subbedin"]}
        }
字段subbedout和subbedin与预期一致,并且都Int32,但分钟字段值均null


我做错了什么?

您正在同一个投影中创建导致该问题的这两个字段,您需要将其分为两个阶段,或者必须在
{“$toInt”:{“$ifNull”:[“$outmin”,“$endgame”]}
{“$toInt”:{“$ifNull”:[“$inmin”,0]}
中执行操作

db.collection.aggregate([
  {
    "$project": {
      "subbedout": "$a",
      "subbedin": "$b"
    }
  },
  {
    $project: {
      "minutes": {
        "$subtract": [
          "$subbedout",
          "$subbedin"
        ]
      }
    }
  }
])