我想通过rel过滤MongoDB数据。如果relation(“rel”)是“Synonym”或“RelatedTo”,我想在变量中添加文档[surfaceStart]。之后,我想在文本文件中搜索,如果此变量包含在此txt的单词中。 我的代码如下:
f=open(document.txt)
cursor = db.collection.find({"$or": [{"rel": "Synonym"}, {"rel": "RelatedTo"}]})
for document in cursor:
end = document['surfaceEnd'].encode('utf-8')
start = document['surfaceStart'].encode('utf-8')
for line in f:
for w in words:
if start == w:
print start
items = db.collectionNew.find({ 'surfaceEnd': start })
if items.count() > 0:
break
else:
db.collectionNew.insert ({ 'surfaceStart': start,'posStart': posnum, 'negStart': negnum, 'surfaceEnd': end,'posEnd': posnum,'negEnd': negnum, 'rel' : document['rel'], 'findEnd' : 0 })
不幸的是,在最后collectionNew仍然是空的。我试图找到问题所在,所以我添加了行print line
,我意识到问题从开始就开始了。我认为我的光标有问题。请你帮助我好吗?在此先感谢!!!!!!
答案 0 :(得分:0)
所有rel
字段值都以/r/
为前缀?如果是,您应该将查询更改为:
cursor = db.collection.find({"$or": [{"rel": "/r/Synonym"}, {"rel": "/r/RelatedTo"}]})
答案 1 :(得分:0)
如果relation(“rel”)是“Synonym”或“RelatedTo”,
您的第一个查询是否实际返回任何结果?
不,它没有,
您的图片没有显示值为Synonym
或RelatedTo
对通讯的回应:
以下行显然是错误的并且会产生错误:
f=open(document.txt)
不幸的是,有一个错误:
endWord = document('surfaceEnd').encode('utf-8') TypeError: 'dict' object is not callable
括号,括号,括号。它们不可互换。
document('surfaceEnd')
应该是:
document['surfaceEnd']
document
是一个python字典 - 不是函数。