python - 在 MongoEngine 中链接查询

标签 python mongodb rest flask 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 中链接子查询?

最佳答案

因为,mongoengine supports keyword arguments to the objects call ,您可以创建一个字典,将 keys 作为 field_names,将 values 作为 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)

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

关于python - 在 MongoEngine 中链接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18169787/

相关文章:

java - RESTFul WebService - 如何将类变量表示为不同的 json 名称

linux - yum 在 aws linux 上安装 mongodb 失败 : no package available

javascript - 在 mongodb 中实现分页

java - 如何将没有时区计算的原始日期/时间存储到 MongoDb

python - Keras 自动编码器简单示例有一个奇怪的输出

rest - 使用 Spark(Databricks) 的并行 REST API 请求

.net - 有没有办法使用 WCF Web API 控制 JSON 格式?

python - 禁用 tkinter 小部件的焦点?

python - 是否可以在 python 中对已编译的正则表达式进行类型提示?

python - Airflow - 无论上游成功/失败如何运行任务