我有两个mongodb集合。一个是Users
,另一个是Posts
。在用户集合中,每个文档存储了该特定用户遵循的用户名列表。例如,
{
'username' : 'username',
'following' : ['user1', 'user2', 'user3'],
...
}
,Posts
集合中的每个文档都由author
字段组成。现在,为了创建新闻提要,我想显示特定用户遵循的用户的帖子。
{
'content' : 'some content',
'author' : 'user1',
...
}
我可以在MongoEngine(Python(中编写查询,以便查询Posts
集合并返回author
字段是following
列表中的作者之一的所有文档?(用户遵循的人的列表(按时间顺序排列。
谢谢!
假设您有以下模型和数据:
class User(Document):
following = ListField(StringField())
class Post(Document):
author = StringField()
User(following=['A', 'B']).save()
Post(author='B').save()
您需要已经有列表(您不能直接使用user_id
查询帖子(,然后您可以使用__in
操作员来实现所需的目标:
user = User.objects.first()
print(user.following) # [u'A', u'B']
Post.objects(author__in=user.following) # [<Post: Post object>]