我的django模型中有一个列表字段供用户使用,如下所示: name = models.CharField() email = models.CharField() profiles = ListField()
我在django_mongodb_engine的帮助下使用mongo作为存储数据库。 对于一个用户,模型对象可能是
{name: 'Alice', email: 'abc', profiles: ['Read']}对于另一个用户,可能是:
{name: 'John', email: 'xyz', profiles: ['Read', 'Write']}
我想搜索为其分配了阅读个人资料的用户。 在mongo db shell中,只需添加查询
{'profiles': 'Read'}即可执行。 我们可以通过django querysets执行搜索吗?当我尝试时,它给了我一个例外"列表索引必须是整数,而不是str"。请在这方面指导我。感谢
答案 0 :(得分: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'})