有示例代码:
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)
但不起作用,它只是返回一个空列表,而不是错误。我究竟做错了什么?