我已经搜索了大约半个晚上,但似乎无法理解或发现我的错误。
我正在尝试连接到MongoDB并在表中搜索特定的字符串。我不在乎字符串在哪个字段中,只是在行中的任何一个字段包含字符串的情况下,它都应该返回“名称”字段的内容。
我尝试了多种不同的编写方式,而且我似乎总是想出一些类似的方法:
search_for_mapname(mpname):
# create the MongoDB client and connect to the database
dbclient = pymongo.MongoClient(dbtoken)
# check for mpname
cursor = dbclient.database.maps.find( { 'name': mpname, "$or":[{"aliases":mpname}] } )
for map in cursor:
return map['name']
return "INVALID"
每行的结构如下:
{ 'name': "ff_2fort", 'aliases': ["2fort", "2", "alias"] }
find()
似乎可以在mpname == maps['name']
时识别出来,但是当我输入一个已知存在的别名时,每次都会得到“ INVALID”。
答案 0 :(得分:0)
我发现了自己的错误,$或它的工作方式不像我上面写的那样,实际上应该这样写:
cursor = dbclient.FortressForever.maps.find( { "$or":[ {"name": mpname}, {"aliases":mpname}] } )