编写对mongodb每秒有效的高性能查询

问题描述

我需要有关正在研究的项目的性能查询策略的算法建议。项目数据库是MongoDb,代码库是带有MongoDB C#驱动程序的.Net Core。

下面,我将提供有关付费视频对话数据库模型的一些信息。所有数据都存储在MongoDB中,下一个json数据是 Calls 集合中的文档之一,该文档提供有关通话记录的信息。 Created字段是以OADate表示的日期

 {
    "_id": "2753cd97-3797-43bf-86cc-63e658bc7bdb","Created": 44114.92761892361,"IsDeleted": false,"PremiumUserId": {
        "$binary": "W/7hgstLr0erwlI9Y7BE/Q==","$type": "3"
    },"PartnerUserId": {
        "$binary": "KHb8k23XQ0iEMVubumrnFg==","Completed": false,"Duration": 0
}

以下数据模型是 AccountCredits 中的文档之一,该文档提供有关高级用户剩余时间的信息。如果Duration字段中的值减小到0,则相关调用自动结束,但这是另一回事。

{
    "_id":"2d4e69be-7646-4d9b-b20c-2329316dc7f1","Created":44114.91612638889,"IsDeleted":false,"UserId":{"$binary":"W/7hgstLr0erwlI9Y7BE/Q==","$type":"3"},"Duration":21600000
}

当我们有成千上万次通话时,我想每秒增加通话中的Duration字段并减少 AccountCredits 集合中的Duration。目前,我每5秒使用Hangfire进行一次更新,但是在进行更新时会遇到很多障碍。我可以使用1秒钟的时间,但在那种情况下,我需要更多的资源,例如cpu,内存等。

根本问题是,如何为每个2个集合文档编写一个性能查询并管理当前活动呼叫的所有持续时间。最重要的是:“所有更新都应以最小的延迟完成。”

预先感谢您的帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...