MongoEngine中的子查询

有示例代码:
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)
但是不起作用,它只返回一个空列表,而不是错误。我究竟做错了什么?     
已邀请:
  我究竟做错了什么? 您无法跨参考字段查询任何内容 - 请参阅嵌入V参考 因此,即使支持语法,它也会在幕后进行两次查询。如果它想要的东西 - 给github添加一张票,我会考虑添加它:) MongoEngine的更新目前正在迅速发布 - 所以即将推出新版本! dev分支上有一些令人兴奋的改进,包括高效的懒惰解除引用和更新原子节省的增量!     
  ...它不必要地调用并连接数据库N次 MongoDB支持一个
$in
子句,允许选择只有一个查询,一个连接的多个对象。如果您看到多个连接,您应该向mongoengine的作者报告。 因为MongoDB不支持连接,所以“加载用户,加载帖子”的方法通常是正确的方法。   我究竟做错了什么? 对于这种详细程度,您最好的选择是直接与作者联系。 github页面包含他的电子邮件和他的博客。看看回购,他的最后一次更新是2010年10月,最后一个版本号是0.4。没有更新的三个月是这个领域的很长一段时间,他甚至没有1.0版本,所以你很可能需要直接与作者交谈。     

要回复问题请先登录注册