python通过pymongo链接mongodb数据库,并进行增、删、改、查等常用操作。
1.连接mongodb
# 链接mongodb
client = pymongo.MongoClient(host='127.0.0.1',
port=27017,
username='username',
password='pwd'
)
# 查看数据库
db_list = client.list_database_names()
print("数据库:{}".format(db_list))
# 数据库为mydb
db = client.mydb
# 查看mydb数据库中的集合
col_list = db.list_collection_names()
print("mydb数据库中的集合:{}".format(col_list))
2. 添加数据
2.1 插入一条数据
# 向test集合中插入一条数据
my_col = db.test
data_one = {'_id':1,"name":"测试",'age':1} # id可以不指定,若不指定,会自动生成id
# 插入数据
my_col.insert_one(data_one)
x = my_col.insert_one({"name":"测试02",'age':2})# 获取id:x.inserted_id
print(y.insrted_id) # 查看插入数据的id
在 mongo 控制台中查询如下:
2.2 插入多条数据
# 插入多条数据
data_list = [
{"name":"测试03","age":3},
{"name":"测试04","age":4},
{"name":"测试05","age":5},
{"name":"测试6","age":6},
{"name":"测试7","age":7},
{"name":"测试8","age":8},
{"name":"测试9","age":9},
{"name":"测试","age":10}
]
x = my_col.insert_many(data_list)
print(x.inserted_ids) # 查看插入数据的id
# my_col.insert() 支持插入一条和多条
3 查询数据
3.1 查询一条数据
result = my_col.find_one()
print(result)
my_query = {"name":"测试"}
result = my_col.find_one(my_query)
print(result)
3.2 查询多条数据
my_query = { "name": { "$regex": "测试\d+" } }
results = my_col.find(my_query)
for result in results:
print(result)
# 查询所有数据
result_all = my_col.find()
4. 修改数据
4.1 修改一条数据
# 将name="测试03"的age改为30
my_query = { "name": "测试03" }
new_values = { "$set": { "age": 30 } }
# 修改数据
my_col.update_one(my_query, new_values)
new_data = my_col.find_one(my_query)
print(new_data)
4.2 修改多条数据
# 修改多条数据
my_query = { "name": { "$regex": "测试\d+" } }
new_values = { "$set": { "age": 100 } }
# 修改数据
x = my_col.update_many(my_query, new_values)
print("修改记录数:{}".format(x.modified_count))
new_data = my_col.find(my_query)
for line in new_data:
print(line)
5. 删除数据
# 删除一条数据
my_query = { "name": "测试" }
my_col.delete_one(my_query)
# 删除多条数据
my_query = { "name": { "$regex": "测试\d+" } }
x = my_col.delete_many(my_query)
print("删除记录数为:{}".format(x.deleted_count))
# 删除全部数据
my_col.delete_many({})
# 删除集合
my_col.drop()