Mongodb查询计算每个文档两个日期之间的天数

Zee*_*194 2 mongodb mongodb-query aggregation-framework

示例文档:

{
    "_id" : ObjectId("5e7331614dd99d1a30143a58"),
    "status" : "rejected",
    "from" : ISODate("2020-03-17T08:46:02.552Z"),
    "to" : ISODate("2020-03-18T08:46:07.124Z")
},
{
    "_id" : ObjectId("5e7331614dd99d1a30143a58"),
    "status" : "rejected",
    "from" : ISODate("2020-03-02T08:08:32.819Z"),
    "to" : ISODate("2020-03-05T08:08:37.125Z"),
}
Run Code Online (Sandbox Code Playgroud)

我是 mongodb 的新手,我想计算每个文档的日期(到字段和从字段)之间的天数,其中状态等于“已拒绝”

sri*_*asy 5

您可以尝试以下查询:

db.collection.aggregate([
  /** Filter out docs */
  { $match: { status: "rejected" } },
  /** subtract two dates gets timestamp & divide to convert to days & round value */
  {
    $addFields: {
      daysCount: {
        $round: { $divide: [{ $subtract: ["$to", "$from"] }, 86400000] }
      }
    }
  }
]);
Run Code Online (Sandbox Code Playgroud)

测试: MongoDB-Playground