为什么我的数据库版本> 3.6却支持聚合,但为什么我仍然得到“ dateFromString无法识别的参数:'格式'”

时间:2019-02-21 11:40:29

标签: mongodb date aggregate

在聊天中,我有一些日期的字符串格式如下:

"_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"
}

我在mongo中的数据库版本是3.6.5:

enter image description here

在Mongo文档中,您可以在下面看到支持dateFromString函数:

enter image description here

这是我的失败代码:

“ errmsg”:“ $ dateFromString的无法识别的参数:格式”

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 :(得分:1)

在3.6中添加了该运算符,但其签名在v4中已更改。

v3.6中没有“格式”参数。有关该版本的文档,请访问https://docs.mongodb.com/v3.6/reference/operator/aggregation/dateFromString/