如何在$ dateToString mongodb中使用unixtime

时间:2018-06-29 13:39:03

标签: node.js mongodb mongoose mongoose-schema

无法与$dateToString一起使用unixtime。

这是架构:

var wifiSchema = mongoose.Schema({
  ID: String,
  Vendor: String,
  SSID: String,
  TimeStamp: {
    date: Number,
  },
  AP: String,
  MAC: String,
  ID_frame: String,
  RSSI: Number,
  Type: String
}, { collection: 'wifiScan' });

var wifi = mongoose.model('wifi', wifiSchema);

这是猫鼬功能:

wifi.aggregate([

  {$group:{_id:{"time" : "$TimeStamp.date"},uniqueCount: {$addToSet: "$MAC"}}},
  {$project:{"time":1,uniqueCustomerCount:{$size:"$uniqueCount"}, yearMonthDayUTC: { $dateToString: { format: "%Y/%m/%d", date: new Date('$$TimeStamp.date') } } } },
    {$sort:{'uniqueCustomerCount': -1 }}
    ]).limit(20).exec().then(notes => {
      res.status(200).json({data:notes});
      console.log(notes);
    });

使用$dateToString从unix fo日期格式转换date变量时出现错误,这是我得到的结果:

  { _id: { time: 1529235720000 },
    uniqueCustomerCount: 26,
    yearMonthDayUTC: '1970/01/01' } ]

我不知道为什么我得到的是“ 1970/01/01”。谢谢你的帮助。

第二次尝试:

我也尝试了这个$ project示例:

 {$project:{"time":1,uniqueCustomerCount:{$size:"$uniqueCount"},"Time": { "$add": [ new Date(0), "$TimeStamp.date" ]} } },

0 个答案:

没有答案