Мне нужен запрос, чтобы вернуть весь документ, который содержит определенную строку в списке - PullRequest
0 голосов
/ 01 апреля 2019

Мне нужно выполнить запрос django , чтобы вернуть весь документ, который содержит в списке определенную строку "amazon", и этот список хранится в формате dict. Поле является dict, и каждый ключ в словаре содержит тип списка.

Этот образец моего документа:

{
    "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 голосов
/ 01 апреля 2019
found = []
for i in info.objects.all():
    for m in i.market_info:
        if market_info[m] == 'string':
           found.append(i)
...