gpt4 book ai didi

MongoDB:调用 Count() 与跟踪集合中的计数

转载 作者:行者123 更新时间:2023-12-02 05:36:37 25 4
gpt4 key购买 nike

我正在将我们的消息系统转移到 MongoDB,并且很好奇对于各种统计数据(例如每个用户的消息数量等)采取什么方法。在 MS SQL 数据库中,我有一个表,其中每个用户有不同的计数,他们得到由相应表上的触发器更新,因此我可以知道 UserA 有多少条未读消息,而无需调用昂贵的 SELECT Count(*) 操作。

MongoDB 中的 count 函数也很昂贵吗?我开始阅读有关 Map/Reduce 的内容,但我的网站负载很高,因此统计数据必须实时更新,我的理解是 Map/Reduce 是耗时的操作。

在 MongoDB 中收集各种聚合计数的最佳(性能方面)方法是什么?

最佳答案

如果您有大量数据,那么我会坚持使用相同的方法,并在为用户添加新消息时增加聚合计数器,使用如下所示的集合:

计数

{
userid: 123,
messages: 10
}

不幸(或幸运?)MongoDB 中没有触发器,因此您需要从应用程序逻辑中增加计数器:

db.counts.update( { userid: 123 }, { $inc: { messages: 1 } } )

这将为您提供最佳性能,并且您可能还会在 userid 字段上放置索引以进行快速查找:

db.counts.ensureIndex( { userid: 1 } )

关于MongoDB:调用 Count() 与跟踪集合中的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6054464/

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