0

我的 django 模型中有一个供用户使用的列表字段,如下所示: name = models.CharField() email = models.CharField() profiles = ListField()

我在 django_mongodb_engine 的帮助下使用 mongo 作为存储数据库。对于一个用户,模型对象可能是

{名称:'Alice',电子邮件:'abc',个人资料:['Read']}
对于另一个用户,它可能是:

{名称:'John',电子邮件:'xyz',个人资料:['Read','Write']}

我想搜索分配给他们阅读个人资料的用户。在 mongo db shell 中,只需添加查询即可执行

{'个人资料':'阅读'}
. 我们可以通过 django 查询集执行这样的搜索吗?当我尝试时,它给了我一个例外“列表索引必须是整数,而不是 str”。请在这方面指导我。谢谢

4

1 回答 1

1

一种可能的解决方案可能是在以下方面使用原始查询MongoDBManager

from django_mongodb_engine.contrib import MongoDBManager

class UserModel(models.Model):
    name = models.CharField()
    email = models.CharField()
    profiles = ListField()

    objects = MongoDBManager()

接着:

UserModel.objects.raw_query({'profiles': 'Read'})
于 2016-08-24T09:42:44.810 回答