我需要查询以返回列表中包含特定字符串的所有文档

时间:2019-04-01 15:31:42

标签: python django django-models django-views djongo

我需要执行 django查询,以返回列表中包含特定字符串"amazon"的所有文档,并且此列表存储在字典中。 该字段是字典,字典中的每个键都包含一个列表类型。

我的文档示例:

{
    "collector_id" : 80,
    "market_info" : {
        "market_name_list" : [ 
            "amazon", 
            "souq"
        ],
        "key_2" : [
            "item1_in_list",
            "item2_in_list",
            "item3_in_list"
        ]
    }
}  

market_info是DictField。

我尝试了很多查询,但都失败了。

query_set = myModel.objects.filter(market_info__contains= 
{'market_name_list': ['amazon']})

这是我的模特:

from djongo import models as db

class info(db.Model):
    collector = db.ForeignKey(Collector, null=True,                   
              on_delete=db.SET_NULL)
    market_info = db.DictField(default={'market_name_list': [],
                                        'search_for_list': []
                                       })

1 个答案:

答案 0 :(得分:0)

found = []
for i in info.objects.all():
    for m in i.market_info:
        if market_info[m] == 'string':
           found.append(i)