查询以返回所有文档,其中字段与Mongoengine列表中的任何元素匹配



我有两个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>]

相关内容

  • 没有找到相关文章

最新更新