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