gpt4 book ai didi

python - MongoEngine 中的子查询

转载 作者:可可西里 更新时间:2023-11-01 10:01:34 26 4
gpt4 key购买 nike

有示例代码:

import mongoengine as mongo

class User(mongo.Document):
name = mongo.StringField()
age = mongo.IntField()

class Post(mongo.Document):
title = mongo.StringField()
author = mongo.ReferenceField(User)

我想获取所有 30 岁以下用户创建的帖子,一种方法是分两步进行请求:

users = User.objects(age__lt=30)
posts = Post.objects(author__in=users)

但即使这样也不是完全糟糕,它不必要地调用和连接到数据库 N 次。所以我想在一步中进行查询,我试过:

posts = Post.objects(author__age__lt=30)

但是不起作用,它只是返回一个空列表,而不是错误。我做错了什么?

最佳答案

What am I doing wrong?

没有您不能跨引用字段查询的内容 - 请参阅 Embed Vs Reference

因此,即使语法得到支持,它也会在幕后进行两次查询。如果它是想要的东西 - 向 github 添加一张票,我会考虑添加它:)

目前 MongoEngine 的更新速度很快 - 所以很快就会发布新版本! dev 上有一些激动人心的改进分支,包括高效的惰性取消引用和更新增量以进行原子保存!

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com