невозможно использовать 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" ]} } },