MongoEngine中的链接查询

杰森

我正在为标准CRUD应用程序实现REST API。在一个示例中,要获取用户列表,客户端可以调用:

GET api.site.com/users (以及可选) ?name=x phone=x email=x

传递以上可选参数可以过滤我搜索的用户。

我正在尝试在Python中实现此逻辑。我正在考虑链接子查询,如下所示:

鉴于:

users = User.objects()

然后:

if 'name' in request.args:
    users = users.objects(name = request.args['name'])

和:

# List of users is smaller after filtering by name
if 'phone' in request.args:
    users = users.objects(phone = request.args['phone'])

和:

# List of users is smaller after filtering by phone
if 'email' in request.args:
    users = users.objects(email = request.args['email'])

但是该方法不可用,我无法通过查看MongoEngine API参考或用户指南或教程来了解如何执行此操作。

如何在MongoEngine中链接子查询?

bool.dev

由于mongoengine支持objectscall的关键字参数,因此您可以创建一个字典,为field_names,值为field_values。然后在查询时使用此词典。例如:

query = {}

if 'name' in request.args:
    query['name'] = request.args['name']

if 'phone' in request.args:
    query['phone'] = request.args['phone']

if 'email' in request.args:
    query['email'] = request.args['email']

user = User.objects(**query)

上面只是一个示例,您可能要添加安全措施,并可能有一个默认查询,具体取决于您的应用程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章