0
나는 쿼리가 정확하지만 여전히 오류라고 생각합니다.pymongo 오류 : 필터는 dict, bson.son.SON 또는 collections.Napping의 상속 유형이어야합니다. 매핑
findQ = {"fromid": wordid}, {"toid":1}
res= self.db.wordhidden.find(findQ)
그러나 find_one (findQ)가 작동합니다. 그래서 나는 잘못된 것을 발견 할 수 없다. 파이썬 3.6과 pymongo를 사용합니다.
def getallhiddenids(self,wordids,urlids):
l1={}
for wordid in wordids:
findQ = {"fromid": wordid}, {"toid":1}
res= self.db.wordhidden.find(findQ)
for row in res: l1[row[0]]=1
for urlid in urlids:
findQ = {"toid": urlid}, {"fromid":1}
res= self.db.hiddenurl.find(findQ)
이 오류는 다음과 같습니다 : 다음은 내 코드입니다 PyMongo find()는 사전 또는 bson.son 객체를 필요로하기 때문에
Traceback (most recent call last):
File "C:\Users\green\Desktop\example.py", line 9, in <module>
neuralnet.trainquery([online], possible, notspam)
File "C:\Users\green\Desktop\nn.py", line 177, in trainquery
self.setupnetwork(wordids,urlids)
File "C:\Users\green\Desktop\nn.py", line 105, in setupnetwork
self.hiddenids=self.getallhiddenids(wordids,urlids)
File "C:\Users\green\Desktop\nn.py", line 93, in getallhiddenids
res= self.db.wordhidden.find(findQ)
File "C:\Users\green\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\pymongo\collection.py", line 1279, in find
return Cursor(self, *args, **kwargs)
File "C:\Users\green\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\pymongo\cursor.py", line 128, in __init__
validate_is_mapping("filter", spec)
File "C:\Users\green\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\pymongo\common.py", line 400, in validate_is_mapping
"collections.Mapping" % (option,))
TypeError: filter must be an instance of dict, bson.son.SON, or other type
that inherits from collections.Mapping
나는 pymongo에 대해 거의 알고있다. 즉, findQ는 터플입니다. 튜플을 find() 메소드에 전달할 수 있습니까? –