在德语中用德语变音符号查询mongoDB

时间:2018-07-07 13:13:03

标签: python mongodb encoding utf-8

我在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()

这是我查询集合的方式(例如,查询主题中的第一个主题):

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

任何想法,如何正确进行查询? (该代码对于其中没有任何变音符号的主题很好用,例如“ MARIAHILF”。)

1 个答案:

答案 0 :(得分:0)

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