想象一下,您有数百万用户在平台上执行事务。假设每笔交易都是您的MongoDB集合中的一个文档,那么每天将生成数百万个文档,从而立即使您的数据库爆炸。我已经收到来自亲朋好友的以下解决方案。
我想了解和实施与银行遵循的策略有些类似的策略。他们将您的交易保持在某个特定点(eg: 6 months
),之后您必须通过支持或任何其他渠道来请求它们。我假设他们遵循热/冷存储模式,但是我对此不太确定。
整个过程的重点是管理交易文档,并每天备份或将较旧的记录移至另一个可以读取的地方。知道使用MongoDB怎么可能吗?
更新:示例文档(请注意,该文档中还有一些其他键已被编辑)
{
"_id" : ObjectId("5d2c92d547d273c1329b49f0"),
"transactionType" : "type_3",
"transactionTimestamp" : ISODate("2019-07-15T14:51:54.444Z"),
"transactionValue" : 0.2,
"userId" : ObjectId("5d2c92f947d273c1329b49f1")
}
答案 0 :(得分:0)
首先在要保存所有记录的位置创建一个表。 (正如您提到的示例一样,让我们将此条目存储在名为A的集合中。)
此后,在每天午夜创建备份,然后在成功备份后使用命名时间戳记恢复该集合。
在表中成功存储条目之后,您可以截断原始表。
通过这种方法,您在集合上的条目表非常有限,并且还具有所有记录。