Как использовать unixtime с $ dateToString mongodb - PullRequest
0 голосов
/ 29 июня 2018

невозможно использовать unixtime с $dateToString.

это схема:

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);
    });

Проблема в том, что я получаю ошибку при преобразовании переменной даты из формата даты unix fo, используя $dateToString, вот результат, который я получаю:

  { _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" ]} } },
...