我试图找到使用时间戳的天数,但我不知道该怎么做?
{
"_id" : ObjectId("5504cc9ddd5af617caae30b3"),
"session_id" : 1,
"Timestamp" : "2014-04-07T10:51:09.277Z",
"Item_ID" : 214536502,
"Category" : 0
}
如何使用字段计算天数"时间戳" ?
答案 0 :(得分:3)
您可以在时间戳字段中使用$project
,new Date()
和pipe = {
"$project" : {
"_id" : 1,
"daySince" : {
"$divide" : [
{
"$subtract" : [
new Date(),
new Date("$Timestamp")
]
},
86400000
]
}
}
}
,然后进行计算,如下所示:
db.collection.aggregate(pipeline=pipe)
计算:
ISODate
由于时间戳不是60*60*24*1000
个对象,您只需要将其转换为1,然后减去当前日期,并将结果除以new Date()
,那么这将是今天以来的天数。
您还可以将Timestamp
更改为您需要比较的内容。
由于我认为mapReduce
格式可能格式不正确,您可以使用// in your mongo shell using the db
var mapTimestamp = function() {
daySince = parseInt(new Date() - new Date(this.Timestamp) / 86400000);
emit(this._id, daySince);
}
// since you map reduce only on one field, there's really no need for this
var reduceTimestamp = function (key, value) { return value; }
db.collection.mapReduce(mapTimestamp, reduceTimestamp, {out: "sample"})
函数来计算:
db.sample.find()
显示结果:
{{1}}