我正在尝试从mongodb数据库中读取数据,如下所示,遇到了两个问题,有人可以提供指导吗?
遇到以下错误,该如何解决?
有没有一种方法可以通过正则表达式进行不区分大小写的搜索,"\%train\%"
如下所示,不确定这种方法是否正确
from pymongo import MongoClient
import os,pymongo
dbuser = os.environ.get('muser', 'techauto1')
dbpass = os.environ.get('mpwd', 'techpass')
uri = 'mongodb://{dbuser}:{dbpass}@machine.company.com:27017/techautomation'.format(**locals())
client = MongoClient(uri)
db = client.techautomation.tech_build_audit
try:
#db.tech_build_audit
myCursor = db.collection.find({"chip" : "4377","branch" : "\%train\%"}).sort({"_id":-1})
print myCursor
except pymongo.errors.AutoReconnect, e:
print e
错误:
追溯(最近一次通话):
在第11行的文件“ parseplist.py”中
myCursor = db.collection.find({“ chip”:“ 4377”,“ branch”:“%peaceB%”})。sort({“ _ id”:-1})
文件“ /Library/Python/2.7/site-packages/pymongo/cursor.py”,第703行,排序键= helpers._index_list(key_or_list,方向)
_index_list中的文件“ /Library/Python/2.7/site-packages/pymongo/helpers.py”,第52行
引发TypeError(“如果未指定方向,
TypeError:如果未指定方向,则key_or_list必须是list的实例
更新:
由于出现错误,我无法验证正则表达式是否正常工作,如何解决该错误?
您可以将pythonsre
库用于正则表达式和re.IGNORECASE
第二个问题,如下所示:
import re
### rest of your code
regx = re.compile("^foo", re.IGNORECASE)
myCursor = db.collection.find({"chip" : "4377","branch" : regx}).sort({"_id":-1})
print myCursor
关于您更新的问题:
多数民众赞成在另一个问题及其sort()
与pymongo一起使用,您可以在此处查看答案
简而言之,您应该这样使用.sort()
:.sort([("_id", -1)])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句