Попытка увидеть, существуют ли значения в списке в коллекции mongoDB для определенного поля - PullRequest
0 голосов
/ 25 мая 2018

У меня есть список словарей под названием listCityStateZip.Один из ключей в listCityStateZip называется cityStateZip.Я хочу посмотреть, какие из значений cityStateZip существуют в коллекции MongoDB, называемой zipcodes (поле: citystatezip).Если совпадений не найдено, я хочу пометить эту запись в своем списке как «N».Если совпадение найдено, я хочу пометить эту запись в своем списке как «Y».Я думал, что приведенный ниже код решит мои проблемы, но по какой-то причине только самая первая запись в listCityStateZip (список) заканчивается получением флага.Код показан ниже.Два вопроса: 1) есть ли более простой способ написания этого кода с использованием python и 2) если нет, почему я получаю флаг только в самой первой записи в моем списке?

for a in listCityStateZip:
    for b in db.zipcodes.find({'citystatezip': a['cityStateZip']},{'_id':1}):
        c.append(b)
        if len(c) == 0:
            a['flag'] = 'N'
        else:
            a['flag'] = 'Y'
        c=[]

1 Ответ

0 голосов
/ 25 мая 2018

Вы можете попробовать это, гораздо более простой способ

for a in listCityStateZip:
    if db.zipcodes.find({'citystatezip': a['cityStateZip']}).count() > 0:
        a['flag'] = 'Y'
    else:
        a['flag'] = 'N'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...