是否可以使用 Django mongodb nonrel 检索字段的子集? .我对 python 完全陌生,但对 mongo 有很好的了解。
我的要求很直接,我想通过它的嵌入字段查询集合并只返回一些特定的字段
我可以在 mongodb 中通过
db.Contract.find({'owner.name':'Ram'},{'address':1})
我在 django 中试过这个
Contract.objects.filter(owner__name='Ram')
但它会抛出一个错误
raise FieldError("Join on field %r not permitted. Did you misspell %r for the lookup type?" % (name, names[pos + 1])) FieldError: Join on field 'owner' not permitted. Did you misspell 'name' for the lookup type?
我完全被打动了。我相信我有文档中指定的模型。
class SimplePerson(models.Model):
name = models.CharField(max_length=255)
user_key = models.CharField(max_length=255)
class Contract(models.Model):
owner = EmbeddedModelField('SimplePerson')
title = models.CharField(max_length=120, )
这真的很奇怪。我在文档站点中找不到任何关于如何查询嵌入字段和检索字段子集的引用。
最后我用了raw_query查询嵌入字段
Contract.objects.raw_query({'owner.name':'Ram'})
但仍然无法弄清楚如何检索字段的子集。有人可以帮帮我吗?
最佳答案
子对象过滤器尚不可用,因此您需要下拉至 raw_query
(您已经知道了)。要检索字段的子集,请使用 .values('field1', 'field2', ...)
。
关于python - 通过查询嵌入字段来检索字段的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11506828/