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)
但是不起作用,它只返回一个空列表,而不是错误。我究竟做错了什么?
没有找到相关结果
已邀请:
2 个回复
捻盒愧杯
喷乡顾沥沪
子句,允许选择只有一个查询,一个连接的多个对象。如果您看到多个连接,您应该向mongoengine的作者报告。 因为MongoDB不支持连接,所以“加载用户,加载帖子”的方法通常是正确的方法。 我究竟做错了什么? 对于这种详细程度,您最好的选择是直接与作者联系。 github页面包含他的电子邮件和他的博客。看看回购,他的最后一次更新是2010年10月,最后一个版本号是0.4。没有更新的三个月是这个领域的很长一段时间,他甚至没有1.0版本,所以你很可能需要直接与作者交谈。