Почему я получаю "нераспознанный аргумент для dateFromString: 'format'", несмотря на наличие версии db> 3.6, которая поддерживает агрегацию - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть некоторые даты в виде чатов, отформатированные в виде строки:

"_id" : ObjectId("2bfd5d45348ef655b5236d93"),
"status" : "closed",
"context" : "Chats",
"chats" : {
    "time_initialized" : "2019-02-20T17:35:39.960284505Z",
    "time_responded" : "2019-02-20T17:42:06.691469546Z",
    "time_closed" : "2019-02-20T17:44:10.158421784Z"
}

Моя версия БД в монго - 3.6.5:

enter image description here

В документации Mongo ниже видно, что поддерживается функция dateFromString:

enter image description here

Вот мой код, который не работает с:

"errmsg": "Нераспознанный аргумент в $ dateFromString: format"

db.conversations.aggregate([
   {$match: {"context": "Chats", "status": "closed", 
   "chats.time_closed": {$exists: true}}},

   {$unwind: "$chats"},

  {$project: {chats:1, _id: 1, status: 1, 
  initialised_closed_duration: 
      {$divide: [
          {$subtract: [
              {$dateFromString: {dateString: "$chats.time_closed", format: "%Y-%m-%dT%H:%M:%S.000000000Z"}},{$dateFromString: {dateString: "$chats.time_initialized", format: "%Y-%m-%dT%H:%M:%S.000000000Z"}}]},60000]}}},
 {$limit: 5}]).pretty()

Цель моего запроса - получить дату инициализации чата изатем закройте и определите продолжительность в минутах (отсюда делите разницу в миллисекундах на 60 000)

У кого-нибудь есть идеи по этому поводу?

1 Ответ

0 голосов
/ 21 февраля 2019

Оператор был добавлен в 3.6, но его подпись изменилась в v4.

В v3.6 не было аргумента "format".Документация для этой версии доступна на https://docs.mongodb.com/v3.6/reference/operator/aggregation/dateFromString/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...