Как я могу вычесть дату и время в mongodb? - PullRequest
0 голосов
/ 08 октября 2018

У меня есть один документ с датой и временем

use testing
db.test.insert({employee : 1, DateColumn1: new Date(), DateColumn2: new Date()})

После создания документа у меня обновляется DateColumn2 через 5 минут.

db.test.update({employee : 1}, {$set : {DateColumn2: new Date()}})

Я попытался этой командой вычестьDateColumn2-DateColumn1, но он показывает числовой формат.

db.test.aggregate([{$project :{employee : 1, dateDifference: {$subtract: ["$DateColumn2","$DateColumn1"]}}}])

Мне нужен формат даты и времени для отображения

1 Ответ

0 голосов
/ 09 октября 2018
db.collection.aggregate([
  {
    $addFields: {
      dateDifference: {
        $subtract: [
          "$DateColumn2",
          "$DateColumn1"
        ]
      }
    }
  },
  {
    $addFields: {
      diffInSec: {
        $divide: [
          "$dateDifference",
          1000
        ]
      }
    }
  },
  {
    $addFields: {
      hours: {
        $floor: {
          $divide: [
            "$diffInSec",
            3600
          ]
        }
      },

    }
  },
  {
    $addFields: {
      remainingSeconds: {
        $subtract: [
          "$diffInSec",
          {
            $multiply: [
              "$hours",
              3600
            ]
          }
        ]
      }
    }
  },
  {
    $addFields: {
      minutes: {
        $floor: {
          $divide: [
            "$remainingSeconds",
            60
          ]
        }
      },

    }
  },
  {
    $addFields: {
      remainingSeconds: {
        $subtract: [
          "$remainingSeconds",
          {
            $multiply: [
              "$minutes",
              60
            ]
          }
        ]
      }
    }
  }
])

Вы можете проверить это здесь

...