尝试查看列表中的值是否存在于特定字段的mongoDB集合中

时间:2018-05-25 19:35:58

标签: python mongodb

我有一个名为listCityStateZip的词典列表。 listCityStateZip中的一个键叫做cityStateZip。我想看看哪个cityStateZip值存在于名为zipcodes的MongoDB集合中(字段: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 :(得分:0)

你可以尝试这个,更简单的方法

for a in listCityStateZip:
    if db.zipcodes.find({'citystatezip': a['cityStateZip']}).count() > 0:
        a['flag'] = 'Y'
    else:
        a['flag'] = 'N'