无法与$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" ]} } },