mongodb中的时间集群

埃姆雷

给定一个包含事件日志的用户架构,您如何识别时间事件集群;例如,m内有n个或更多事件每个用户可能看起来像这样,我对所有用户都感兴趣:

{
 _id: ...
 name: ...
 events: [{foo: bar, date: Date}, ...]
}
i80and

仅使用MongoDB中的工具,最好的选择是将事件分为时间段,并使用聚合框架对这些时间段进行分析。

第一步是重组架构。最好将每个事件放在自己的文档中,以允许更灵活的查询并防止添加新事件时文档的需求增长。请参阅有关规范化数据模型的文档

例如,您可能有两个集合:usersevents,其中events.user表示拥有user

{
    _id: ObjectId,
    name: string
}

{
    _id: ObjectId,
    user: ObjectId,
    date: Date,
    date_ms: Integer
}

然后,您可以使用以下查询查找包含100多个事件的一分钟间隔:

db.events.aggregate([
    {$group: {_id: {$subtract: ["$date_ms", { $mod: ["$date_ms", 60*1000]} ]},
        count: { $sum: 1 }}},
    {$match: {"count": {$gt: 100}}}
])

请注意,此查询不是完美的解决方案:它不会返回跨越存储桶边界划分的事件集群。对于更复杂的逻辑,您将必须在应用程序中进行分析。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找文档在Mongodb集群中的位置,

来自分类Dev

MongoDB分片集群中的文档计数错误

来自分类Dev

同一 Kubernetes 集群中的多个 MongoDB Statefulset

来自分类Dev

MongoDB + K表示集群

来自分类Dev

MongoDB Atlas项目/集群

来自分类Dev

在mongodb中插入当前日期时间

来自分类Dev

在mongoDB中搜索日期和忽略时间

来自分类Dev

在mongoDB中插入时间长

来自分类Dev

仅在mongodb聚合中的匹配时间

来自分类Dev

JSON中的Python MongoDB数据时间

来自分类Dev

在mongodb中插入当前日期时间

来自分类Dev

如何根据时间戳在MongoDB中查询

来自分类Dev

创建mongodb分片集群的工具

来自分类Dev

无法连接到MongoDB集群

来自分类Dev

Mongodb做工作的机器集群

来自分类Dev

当MongoDB集群中的一个分片用完磁盘空间时会发生什么?

来自分类Dev

使用mongoose将Node.js连接到MongoDB中的分片副本集群的正确方法

来自分类Dev

错误:“无法连接到MongoDB Atlas集群中的任何服务器”

来自分类Dev

MongooseServerSelectionError:使用Minikube时无法连接到MongoDB Atlas集群中的任何服务器

来自分类Dev

当MongoDB集群中的一个分片用完磁盘空间时会发生什么?

来自分类Dev

Cassandra中的集群键

来自分类Dev

Openshift中的JCS集群

来自分类Dev

Node与Docker中的集群

来自分类Dev

集群中的Orientdb索引

来自分类Dev

ActiveMQ Artemis 中的集群

来自分类Dev

集群环境中的EHcache

来自分类Dev

优化Dataproc集群启动时间

来自分类Dev

使用pymongo在mongodb中按时间范围查询

来自分类Dev

在MongoDB中按小时分组的时间戳