gpt4 book ai didi

mongodb - 如何使用 mongodb 聚合保留 UNIX 日期戳

转载 作者:可可西里 更新时间:2023-11-01 10:42:16 25 4
gpt4 key购买 nike

我想在 meteor/MongoDB 中聚合数据。我有几千条格式如下

{_id: sadsadjhsjdys7ad67as8d, t: 1464162907, prod: 123, sys: xyz}

我想将它们按相对日期排序并汇总 prod 字段。

我目前有以下内容

var project = {
"$project" : {
"_id" : 0,
"y" : {
"$year" : {
"$add" : [
new Date(0), {
"$multiply" : [1000, "$t"]
}
]
}
},
"m" : {
"$month" : {
"$add" : [
new Date(0), {
"$multiply" : [1000, "$t"]
}
]
}
},
"d" : {
"$dayOfMonth" : {
"$add" : [
new Date(0), {
"$multiply" : [1000, "$t"]
}
]
}
},

"prod" : "$prod",
"sys" : "$sys"

}
};
var group = {
"$group" : {
"_id" : {
"year" : "$y",
"month" : "$m",
"day" : "$d",
"test" : "$test"
},
sys : "sys",
prod : {
$sum : "$prod"
}
}
};

var result = power_stats.aggregate([match, project, group]);

然而,这会使我的 _id 变成 [y: 2016, m: 5, d: 25] 这是我想要的聚合形式,但是如果我想稍后对日期进行条件查找,它将完全没用继续这个数据。

如何使用 MongoDBe 聚合保留 UNIX 日期戳?

最佳答案

为了实现你可以做到的:

  1. 在 $project 阶段添加 t 字段并通过管道不断填充它 - 因此将始终引用原始时间戳
  2. 创建日期时间字段 'time: new Date("$_id.year", "$_id.month", "_id.day");'

var group = {
"$group" : {
"_id" : {
"year" : "$y",
"month" : "$m",
"day" : "$d",
"test" : "$test"
},

prod : {
$sum : "$prod"
},
dateTime : {
$addToSet : new Date("$_id.year", "$_id.month", "$_id.day")
}
}
};

关于mongodb - 如何使用 mongodb 聚合保留 UNIX 日期戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37431192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com