使用where参数来过滤嵌入式data_relation?

时间:2016-03-14 20:49:35

标签: python eve

是否可以过滤嵌入式data_relation?我希望有可能提出类似:/domains?where={"account":{"field_2_filter_by": "myvalue"}}field_2_filter_by的请求,但我没有成功。

例如,每个DOMAIN项都有一个关联的ACCOUNT项。 DOMAIN帐户字段定义到ACCOUNTS模式的data_relation,而不是dict类型。在ACCOUNTS和DOMAINS架构中,# URL is /accounts ACCOUNTS = { 'query_objectid_as_string': True, 'schema': { '_id': { 'type': 'string', 'readonly': True, }, 'field_2_filter_by': { 'type': 'string', 'readonly': True, } }, 'resource_methods': ['GET'], 'item_methods': ['GET'], 'allowed_filters': ['_id', 'field_2_filter_by'], ... } # URL is /domains DOMAINS = { 'query_objectid_as_string': True, 'schema': { '_id': { 'type': 'string', 'readonly': True, }, 'domain': { 'type': 'string', 'readonly': True, 'data_relation': { 'resource': 'accounts', 'embeddable': True }, } }, 'resource_methods': ['GET'], 'item_methods': ['GET'], 'allowed_filters': ['account', 'account.field_2_filter_by'], ... } 已添加到allowed_filters。

架构示例:

sudo perf kvm stat record  -p appPID

1 个答案:

答案 0 :(得分:0)

在端点资源(目标集合)上执行查找。这主要是由于底层的Mongo数据库,以及Mongo如何处理数据。在mongo中没有连接,并且Eve通过对嵌入的文档/集合执行额外的查找来实现“嵌入”。您可能希望相应地设计数据模型,以使查找/查询更具性能。一个很好的起点是MongoDB Data Models and Example Patterns

对于记录,当support for Aggregation Framework提出Eve v0.7时,您将能够将聚合查询的结果挂钩到API端点,这可能允许在此字段中使用新的解决方案。