gpt4 book ai didi

node.js - 如何计算 Mongoose/NodeJS 中时间戳字段中不同日期项的数量?

转载 作者:太空宇宙 更新时间:2023-11-03 23:41:09 24 4
gpt4 key购买 nike

我在 NodeJS 中使用 Mongoose,并且我有一个包含如下所示文档的集合 -

var SomeSchema = new Schema({
date: {
type: Date,
default: new Date()
},
some_item: {
type: String
}
});

日期 字段包含带有时间部分的日期(例如,2014-05-09 09:43:02.478Z)。如何获取给定日期(例如 2014-05-08)的不同项的计数?

编辑:理想情况下,我想获取每个不同日期的记录计数。

最佳答案

您想要的是使用 aggregate() 的聚合框架命令,至少可以根据您的要求查找一个日期:

SomeSchema.aggregate(
[
{ "$match": {
"date": {
"$gte": new Date("2014-05-08"), "$lt": new Date("2014-05-09")
}
}},
{ "$group": {
"_id": "$some_item",
"count": { "$sum": 1 }
}}
],
function(err,result) {
// do something with result

}
);

如果您专门寻找多个日期的“计数”,那么您可以执行以下操作:

SomeSchema.aggregate(
[
{ "$match": {
"date": {
"$gte": new Date("2014-05-01"), "$lt": new Date("2014-06-01")
}
}},
{ "$group": {
"_id": {
"year": { "$year": "$date" },
"month": { "$month": "$date" },
"day": { "$dayOfMonth": "$date" }
}
"count": { "$sum": 1 }
}}
],
function(err,result) {
// do something with result

}
);

这为您提供了“每天”分组。寻找date aggregation operators如果您想进一步了解,请在文档中查看。

关于node.js - 如何计算 Mongoose/NodeJS 中时间戳字段中不同日期项的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23563289/

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