项目的一期已经完成并且投入使用了,目前参与的项目的二期,补课pymongo:
4.5遇到的数据读取很慢的问题,测试之后发现是在计算数据条总量的时候,使用了:
result=faQuery('b_record',{})
这里就把整个FA数据库中的数据都取了出来,再计算b_record的条数,所以会慢。
collection = faCollection('bank_record')
num = collection.find().count()
self.pageFrame.setTotalRecord(num)
更改过后,只取出b_record这个集合的数据计算条数,速度就比较快。
这里补一些pymongo的基本语句知识
#连接mangodb
mongoClient = MongoClient(getDburl(), getDbport(),username=getDbusername(),password=getDbpassword(),authSource="admin")
#查询
collection = getMongoClient()["fa"][cname]
data = []
for c in collection.find(obj):
data.append(c)
result.data = data
#插入
collection = getMongoClient()["fa"][cname]
collection.insert(obj)
#删除数据集合
collection = getMongoClient()["fa"][cname]
collection.remove(obj)
#数据集合中按照caseName查找
collection = getMongoClient()["case_"+getCaseName()]["b_record"]
data = []
for c in collection.find(obj):
data.append(c)
result.data = data
#mongodb的distinct方法:获取集合中指定字段的不重复值,并以数组的形式返回
collection = getMongoClient()["case_"+getCurrentTask()["caseName"]]["bank_record"]
data = []
num =0
for c in collection.distinct(key):
if limit != -1 and num >= limit:
break
data.append(c)
num +=1
result.data = data
#获取集合名称
result.data = client[dbname].collection_names()