import pymongo
import warnings
warnings.filterwarnings("ignore") # 这个是避免mongo链接的时候爆的警告
from sshtunnel import SSHTunnelForwarder
def connect_test(tabe_name,database_name):
test_database_name = database_name
test_table_name = tabe_name
url_test = '自己链接mongo的url地址'
client = pymongo.MongoClient(url_test)
client_db = client[test_database_name]
client_table = client_db[test_table_name]
# 这个返回的就是mongo的链接
return client_table
if __name__ == '__main__':
primary_key = ['PID', 'dateInclusion']
tabe_name = 'TEST'
database_name = 'enterprise'
client = connect_test(tabe_name,database_name)
# .find就是就是查询全部的数据
all_data = client.find()
# .couunt就是统计
print(client.count())
# 下面就是遍历全部数据
for i in all_data:
print(i)
if __name__ == '__main__':
tabe_name = 'TEST'
database_name = 'enterprise'
client = connect_test(tabe_name,database_name)
# 这个就是只显示 job_name字段,不显示 _id 字段
all_data = client.find({},{"job_name":1,"_id":0})
for i in all_data:
print(i)
# 这个就是只显示 pid,并且对 pid 倒叙排序,正序的话就是 1不是 -1
all_data = client.find({},{"pid":1}).sort('pid',-1)
for i in all_data:
print(i)
if __name__ == '__main__':
tabe_name = 'TEST'
database_name = 'enterprise'
client = connect_test(tabe_name,database_name)
# 这个就是只显示 pid,并且对 pid 倒叙排序,正序的话就是 1不是 -1,
# skip就是跳过几个,从第几个开始,3 就是跳过前三个,从第四个开始
all_data = client.find({},{"pid":1}).sort('pid',-1).skip(3)
for i in all_data:
print(i)
分页显示
if __name__ == '__main__':
tabe_name = 'TEST'
database_name = 'enterprise'
client = connect_test(tabe_name,database_name)
# mongo 分页显示
# 核心就是,先求出总数,然后就是跳过多少,限制多少
all_num = client.find().count()
skip_num = 0
limit_num = 2 # 每页显示多少条
while 1:
print(skip_num)
all_data2 = client.find({},{"pid":1,"_id":0}).skip(skip_num).limit(limit_num)
for i in all_data2:
print(i)
skip_num+=limit_num
if skip_num>=all_num:
break
正则匹配
if __name__ == '__main__':
tabe_name = 'TEST'
database_name = 'enterprise'
client = connect_test(tabe_name,database_name)
# mongo 分页显示
# 核心就是,先求出总数,然后就是跳过多少,限制多少
all_num = client.find().count()
skip_num = 0
limit_num = 2 # 每页显示多少条
while 1:
print(skip_num)
all_data2 = client.find({"company_name":{'$regex': '科技'}},{"company_name":1,"pid":1,"_id":-1}).skip(skip_num).limit(limit_num)
for i in all_data2:
print(i)
skip_num+=limit_num
if skip_num>=all_num:
break