Python MongoDB:查询被引用单据的字段
我正在编写一个Flask应用程序,它报告与内容项相关的不同指标,例如视图数。度量数据是从各种来源导入的,我使用MongoDB将其存储在本地。我用烧瓶里的MongoEngine查询它 数据结构如下: 每个“MetricData”文档引用一个“Metric”和一个“ContentInstance”,即一个Metric有多个MetricData,而一个ContentInstance有多个MetricData-以下是mongo shell中的“Metric_data”文档示例: { _id:Objected536B05FC182AFF24CA916C22, 公制:对象536AE244182AFF1F2222F000C7, 内容\ U实例:Objected536ADCEF182AFF1e73D6E021, ... } 每个“ContentInstance”文档引用一个“类别”和一个“源”,即一个类别有多个ContentInstance,而一个源有多个ContentInstance—以下是mongo shell中的“content_instance”文档示例: { _id:Objected536ADCEF182AFF1E73D6E043, 类别:对象5369C352182AFF28CF18E912, 来源:Objected5369C384182AFF28CF18E914, ... } 我需要按度量、源和类别查询度量数据。我知道我不能进行连接,需要多个查询。我只是想确认我使用的查询是否适合这个用例,并且没有其他更高效、更可伸缩的方式来完成同样的事情,而不是更复杂 如果我将常规RDBMS与Django之类的常规Python ORM一起使用,我可以这样做,但它不适用于MongoDB/MongoEngine: md\u list=MetricData.objects.filtermetric\u title\u= “视图数量”、“令人惊叹”, 内容\实例\源\标题\中= 谷歌、Facebook、, 内容\实例\类别\标题\中= “苹果”,“橘子” 以下是我现在所做的,MongoEngine注:按标题过滤只是一个示例,实际过滤基于用户的查询: metric\u list=metric.objects.filtertitle\u in='Number of views','Awesomeness' source\u list=source.objects.filtertile\u在='Google','Facebook' cat_list=Category.objects.filtertitle_u在class='Apples','Oranges' cont_inst_list=ContentInstance.objects.filtersource_in=source_list, 类别=类别列表 md\u list=MetricData.objects.filtermetric\u in=metric\u list, content\u instance\u in=cont\u inst\u listPython MongoDB:查询被引用单据的字段,python,mongodb,flask,mongoengine,Python,Mongodb,Flask,Mongoengine,我正在编写一个Flask应用程序,它报告与内容项相关的不同指标,例如视图数。度量数据是从各种来源导入的,我使用MongoDB将其存储在本地。我用烧瓶里的MongoEngine查询它 数据结构如下: 每个“MetricData”文档引用一个“Metric”和一个“ContentInstance”,即一个Metric有多个MetricData,而一个ContentInstance有多个MetricData-以下是mongo shell中的“Metric_data”文档示例: { _id:Object
这样提问可以吗?特别是,我担心从一个查询返回多少ContentInstance文档并将其作为参数传递给另一个查询—到目前为止,我的测试数据有限,cont_inst_list的长度已经是147。如果您对此有任何建议,我们将不胜感激。使用EmbeddedDocumentField和EmbeddedDocument,您可以执行类似Django ORM的查询
示例很高兴知道。。。然而,我并没有使用EmbeddedDocument,只是使用带有引用字段的不同文档模型。我需要根据许多不同的维度查询度量数据,数据不能很好地嵌入到一个特定的集合中。。。因此,EmbeddedDocument不是我的选择。我在问我所做的是否是正确的方法,因为它们是具有引用的不同顶级集合。