0

我使用过 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']))

有更好的方法吗?

4

1 回答 1

1

I suppose you're using mongoengine?

Conversation.objects.filter(users__all=['Dennis','linus','Guido'])
于 2013-07-16T17:45:15.783 回答