Python Mongodb和Django

Python Mongodb和Django,python,django,mongodb,django-templates,mongoengine,Python,Django,Mongodb,Django Templates,Mongoengine,我目前正在使用django应用程序中的两个数据库—mongodb存储数字数据,mysql处理关系并提供业务领域背景 我有一个顾虑: 首先,我正在使用mongoengine以及django信号和自定义tamplate标记。意思是: 每当我调用这个过滤器时。{{myobject}dou|sth:“20”}过程是这样的: 过滤调用->myobject的do_sth属性,参数为“20”调用->发送信号作业完成->接收信号作业完成->创建单引擎文档->保存 我不知道这是否清楚,但这只是不同技术的组合-我的

我目前正在使用django应用程序中的两个数据库—mongodb存储数字数据,mysql处理关系并提供业务领域背景

我有一个顾虑:

首先,我正在使用mongoengine以及django信号和自定义tamplate标记。意思是:

每当我调用这个过滤器时。{{myobject}dou|sth:“20”}过程是这样的:

过滤调用->myobject的do_sth属性,参数为“20”调用->发送信号作业完成->接收信号作业完成->创建单引擎文档->保存

我不知道这是否清楚,但这只是不同技术的组合-我的问题是: 在这种情况下,效率问题如何?是否有人尝试过该解决方案或有类似经验


另一个问题:因为我比较经常使用上面描述的过程,所以我应该关注mongodb集合中的项目数量。让我们假设它将在一周内增长到10000个,然后我们清理集合-这样好吗?

我认为对于一个简单的模板标记来说,这太多逻辑了,最好在视图本身中这样做-至少djangonauts会这么说

我认为您是在输出过滤器的结果,而不仅仅是调用信号来创建数据。如果您没有输出结果,那么请使处理脱机并且对用户无阻塞。我在长时间运行/潜在阻塞任务方面取得了巨大成功(您不必使堆栈复杂化,因为mongodb作为队列后端工作得很好)


MongoDB正在生产中,在大型集群中有大量数据-因此10000个文档是相对较少的数据量。

这取决于完成作业的过程需要多长时间以及MongoDB集合中的项目(也称为文档)有多大。使用mongoDB,您可以垂直扩展(更多服务器)而不是水平扩展(更多ram、更快的HD等),您需要更具体地了解problem@GianPaJ你混淆了垂直和水平缩放是的,我的错。横向是更多的服务器。对象看起来像:名称、符号、创建日期和列表字段(最多200个浮动)。它们在数据库中存储大约一周。实际上,尽管几乎涉及到每个应用程序层,但一般过程工作得相当好。存储这些数字数据的目的是跟踪用户搜索的数据。此外,它允许为每个名称列表对生成复杂的报告。@user1642053如果您使用的是mongo>=2.2,则可以使用自动使集合中的文档过期。可能比手动操作快一点。同意,我最终决定去掉过滤器,我使用model属性获取所需的数据并发送信号