Mongo 将时间戳转换为日期

Mongo converting timestamp to date

我在 mongo 中还是新手,但我在 mongo 集合中有一个结构如下的数据:

{
    "_id" : ObjectId("5f79931104a8f102f761398e"),
    "data1" : "This is a data",
    "data2" : "This is a data",
    "timeStampVar" : Timestamp(1603377200, 0),
},

目前我正在尝试使用 timeStampVar 获取过去 14 天内的数据。到目前为止我的代码是这样的:
var yesterdayStart = new Date();
yesterdayStart.setDate(yesterdayStart.getDate() - 14);
yesterdayStart.setUTCHours(0,0,0,0);


var yesterdayEnd = new Date();
yesterdayEnd.setDate(yesterdayEnd.getDate() - 1);
yesterdayEnd.setUTCHours(23,59,59,999);

db.collection_name.aggregate([{ 
    "$addFields": {
      "date": {"$toDate": "$timeStampVar"}
    }
  },

  { 
    "$match": {
        "date": { $gte: yesterdayStart, $lte: yesterdayEnd},
      }
  },

])

我在尝试使用 $toDate 将 10 位数字时间戳转换为日期对象时遇到问题。正如它所说:
{
    "message" : "Unsupported conversion from timestamp to date in $convert with no onError value",
    "ok" : 0,
    "code" : 241,
    "codeName" : "ConversionFailure",
    "name" : "MongoError"
}

我是不是漏掉了什么?在 $toDate 的 mongo 文档中,我看到示例使用的是 13 位时间戳,难道它不支持 10 位时间戳吗?
https://docs.mongodb.com/manual/reference/operator/aggregation/toDate/



提前致谢

每当必须使用 javascript 中的 Date/Time 值时,我推荐 Moments.js 库。它让你的生活更轻松。

会是这样的:

{ 
 "$match": {
    "date": { 
       $gte: moment().subtract(14,'days'),startOf('day').toDate(),
       $lte: moment().subtract(1,'days'),endOf('day').toDate(),
    },
  }
}

看看Timestamps:

Note

The BSON timestamp type is for internal MongoDB use. For most cases, in application development, you will want to use the BSON date type. See Date for more information.