首页 > 解决方案 > MongoDB 查询 KeyError

问题描述

我刚开始使用 MongoDB,我一直在尝试将一个巨大的 csv 标识符列表与 MongoDB 中的数据库进行比较。问题是,根据 csv 文件,代码是否有效。csv 只是一列标识符列表。

这是我的代码:

import pymongo
import csv
from pymongo import MongoClient

connection = MongoClient()
db = connection.smth
collection1 = db.smth2
collection2 = db.smth3
writer = csv.writer(open("/Users/joseantonioruizgarcia/Desktop/OrgIdresult.csv", "w"))

with open('query_result.csv') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=',')
    for row in spamreader:
        cursor1 = collection1.find({"_id" : row[0]})
        for document in cursor1:
            cursor2 = collection2.find({"ultimateParentId" : document['orgId']})
            for document2 in cursor2:
                writer.writerow([document2['name']])

我收到以下错误:

Traceback (most recent call last):
  File "MongoDBconnect.py", line 18, in <module>
    cursor2 = collection2.find({"ultimateParentId" : document['orgId']})
KeyError: 'orgId'

问题是'orgId'实际上存在于数据库中,当我使用不同的文件时它可以工作,但我必须让它适用于所有文件......

有任何想法吗?谢谢!!

标签: pythondatabasemongodbcsvpymongo

解决方案


推荐阅读