是否可以过滤嵌入式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
答案 0 :(得分:0)
在端点资源(目标集合)上执行查找。这主要是由于底层的Mongo数据库,以及Mongo如何处理数据。在mongo中没有连接,并且Eve通过对嵌入的文档/集合执行额外的查找来实现“嵌入”。您可能希望相应地设计数据模型,以使查找/查询更具性能。一个很好的起点是MongoDB Data Models and Example Patterns。
对于记录,当support for Aggregation Framework提出Eve v0.7时,您将能够将聚合查询的结果挂钩到API端点,这可能允许在此字段中使用新的解决方案。