使用Django和mongodb在列表中查找对象

时间:2013-07-16 17:30:29

标签: django mongodb django-queryset

我用过django,但我是mongodb的新手。我有以下模型:

class Conversation(models.Model):
    date = models.DateTimeField(auto_now_add=True, db_index=True)
    users = ListField(models.CharField(max_length="64"), editable=False)
    messages = ListField(EmbeddedModelField('Message'), editable=False)

class Message(models.Model):
    user = models.CharField(max_length="64")
    text = models.CharField(max_length="512");
    date = models.DateTimeField(auto_now_add=True, db_index=True)

我已经存储并显示每个用户的消息对话,但现在我想过滤一些用户的对话,比如私聊。

例如,我希望得到用户包含的对话['Dennis','linus','Guido']

我该怎么办?

提前致谢。

*编辑*

我用Q

得到它
django.db.models.Q
Conversation.objects.filter(Q(users = msg['Dennis'])&Q(users = msg['linus']&Q(users = msg['Guido']))

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我想你在使用mongoengine?

Conversation.objects.filter(users__all=['Dennis','linus','Guido'])