在pymongo中使用sort()和limit()
data = table.find().sort("_id", -1).limit(1)
import pymongo
client=pymongo.MongoClient('localhost',27017)
def insert_mongo(table, insert_data_dict:dict):
"""
往mongodb中插入数据, _id为自增, 注意_id为数值类型
:param table: 表名
:param insert_data_dict: 插入的数据,例如{"name": "zhang"}
:return: insert_id
"""
data = table.find().sort("_id", -1).limit(1) # 取出最后一条数据
try:
last_data = next(data)
insert_data_dict["_id"] = last_data["_id"] + 1
except StopIteration: # 如果是空表
insert_data_dict["_id"] = 1
return table.insert_one(insert_data_dict).inserted_id
def insert_mongo2(table, insert_data_dict:dict): # 这个性能更好
"""
往mongodb中插入数据, _id为自增, 注意_id为数值类型
:param table: 表名
:param insert_data_dict: 插入的数据,例如{"name": "zhang"}
:return: insert_id
"""
last_data = table.find_one(sort=[('_id', -1)]) # 取出最后一条数据
if not last_data:
insert_data_dict["_id"] = 1
else:
insert_data_dict["_id"] = last_data["_id"] + 1
return table.insert_one(insert_data_dict).inserted_id
# 需求, 每行插入下面这些name, _id自增
list_name=['xiaoming','zhangsan','wangwu','lisi']
username_tb = client['test_names']['mytest']
for user_name in list_name:
print(insert_mongo2(username_tb, {"name": user_name}))
client.close()