使用Python中的德语umlauts查询mongoDB

使用Python中的德语umlauts查询mongoDB,python,mongodb,encoding,utf-8,Python,Mongodb,Encoding,Utf 8,我在mongoDB中有一个集合,其中的文档包含一个字段“topic”。在这些主题字段中有德语单词(大写),如“LANDSTRAßE”或“DÖBLIN”。 我还有一个文本文件,每行包含相同的主题(但小写)。 我想从我的文本文件中读取主题,并根据它们查询我的收藏。 但是我的查询没有找到具有该主题的文档,即使该主题确实存在于集合中 以下是我如何读取文本文件: THIS_FOLDER = os.path.dirname(os.path.abspath(__file__)) topicsFileName

我在mongoDB中有一个集合,其中的文档包含一个字段“topic”。在这些主题字段中有德语单词(大写),如“LANDSTRAßE”或“DÖBLIN”。 我还有一个文本文件,每行包含相同的主题(但小写)。 我想从我的文本文件中读取主题,并根据它们查询我的收藏。 但是我的查询没有找到具有该主题的文档,即使该主题确实存在于集合中

以下是我如何读取文本文件:

THIS_FOLDER = os.path.dirname(os.path.abspath(__file__))
topicsFileName = 'topics.txt'
with io.open(os.path.join(THIS_FOLDER, 'Assets', topicsFileName), encoding='utf8', errors='replace') as st:
  topics = st.readlines()
以下是我如何查询集合(例如,我的主题中的第一个主题):


你知道我该如何正确地提出我的问题吗?(该代码适用于没有任何umlaut的主题,如“MARIAHILF”。

我发现了问题所在。这些主题在MongoDB中没有使用正确的编码系统保存。因此,它们没有正确的德语字符。原因是,用于在MongoDB集合中输入主题的文件没有用UTF-8编码。因此,我更新了MongoDB中的主题,查询现在运行良好

# assuming that I have set up mongoDB collection correctly 
cursor = db[collectionName].find({"topic": topics[0].upper().rstrip()})