这是一个示例JSON对象,其中有1000个类似的对象,存储在我的MongoDB集合中。
{
"_id": ObjectId("5b1bb74ffc7ee601c6915939"),
"groupId": "-abcde",
"applicationId": "avcvcvc",
"integration": "web",
"Category": "message",
"Action": "message",
"Type": "newMessage",
"Id": "activity",
"data": {
"test": "good morning"
},
"timestamp": 1528543055858.0,
"createdAt": ISODate("2018-06-09T11:17:35.868+0000"),
"updatedAt": ISODate("2018-06-09T11:17:35.868+0000"),
"__v": NumberInt(0)
}
此对象是日期为2018-06-09的数据示例。 db中有带有连续日期的对象。我必须获取具有特定日期的数据,并对具有该日期的所有对象执行此操作
db.collection.aggregate([{
$match: {
$or: [{
Type: "on mouse hover click"
}, {
Type: "on mouse out"
},
{
Type: "on chat start"
}, {
Type: "Load Event"
}
]
}
},
{
$group: {
_id: null,
count: {
$sum: 1
}
}
}
]);
当调用api时,它应该显示一个特定的日期以及在上面的查询中执行的计算。这应该在所有带有差异的对象上发生。日期。为此,我制作了一个示例架构
let { Schema } = require("mongoose");
let mongoose = require("mongoose");
let dataSchema = Schema({
date: { type: Date },
calculation: { type: Number }
});
let NewData = mongoose.model('dataSchema', dataSchema);
module.exports = { NewData };
我该如何实现?我是MongoDB的新手,所以我不太清楚该怎么做。
答案 0 :(得分:0)
您无法按日期分组,原因是分钟,秒,毫秒等不同
您需要为日期而不是日期时间创建一个项目,日期可以相同但时间不同 然后,您可以进行分组以及您想做什么
3001