以下代码仅返回,格式为
Opp.aggregate( [ { $project: { item: 1, day: { $subtract: [ new Date(), new Date("$CreateDate") ] } } } ] , function (err, result) {
console.log(err);
console.log(result);
res.send(result);
});
[
{
"_id": "56569bff5fa4f203c503c792",
"day": 1449031701920
}
]
但我只需要获得一天的差异。请给出一些解决方案来解决我的问题。
答案 0 :(得分:0)
您可以使用以下聚合管道:
[
{
$project: {
item: 1,
day: { $divide: [{ $subtract: [
new Date(),
"$CreateDate"
]
},
86400000
]
}
}
}
]
代码片段以ISO格式更改输入集合CreateDate,假设col是集合名称:
db.col.find().forEach(function(doc){
doc.CreateDate = new Date(doc.CreateDate);
db.col.update({_id: doc._id}, {$set: {CreateDate: doc.CreateDate}});
});
每当您将文档插入或更新到此集合中时,请确保以ISO格式插入CreateDate。由于您使用mongoose将CreateDate定义为模式中的字符串,并尝试为此字段传递javascript日期对象。