python操作mongo的API地址:https://api.mongodb.com/python/3.7.2/tutorial.html
首先先下载pymongo :python -m pip install pymongo
导入pymongo并测试连接
import pymongo
#连接mongo
#client=pymongo.MongoClient(host='192.168.111.200' ,port=23000)
client=pymongo.MongoClient('mongodb://192.168.111.200:23000') #集群
#指定数据库
db=client.test
#db=client["test"]
# 指定集合 每个库中有许多集合,类似于关系型数据库中的表
collection=db.students
#collection=db['students']
插入数据
插入一条数据:
#插入一条数据
student={
'id':'2',
'name':'ZZ1',
'age':29,
'gender':'male'
}
result=collection.insert_one(student) #每条数据都有一个_id属性来唯一标识,如果没有显式指明该属性,这mongo中自动产生
print('新插入的文档的编号:',result.inserted_id)
插入多条数据:
#插入多条数据
student1={
'id':'3',
'name':'YY',
'age':20,
'gender':'male'
}
student2={
'id':'4',
'name':'MA',
'age':20,
'gender':'male'
}
result=collection.insert_many([student1,student2]) #每条数据都有一个_id属性来唯一标识,如果没有显式指明该属性,这mongo中自动产生
id1=result.inserted_ids[0]
id2=result.inserted_ids[1]
print('新插入的文档的编号:',result.inserted_ids)
print(id1,id2)
查询数据
查询一条数据:
# 查询
result=collection.find_one({'name':'ZZ' })
print(type(result)) #dict
print(result)
# 根据 _id 查
result=collection.find_one({'_id':id2 })
print(type(result)) #dict
print(result)
result=collection.find_one() #返回第一条数据
print(type(result)) #dict
print(result)
查询多条数据:
# 查询多条数据
result=collection.find({'age':20 })
print(type(result)) #dict
for i in result:
print(i)
# 更多条件查询
'''
$lt < $gt > $lte <= $gte >= $in $nin not in
'''
result=collection.find({'age':{'$gte':10} })
print(type(result)) #dict
for i in result:
print(i)
# 功能符号
'''
$regex
$exists
$:type
...
'''
# 正则表达式
result=collection.find({'name':{'$regex':'^Z.*'} }) #以W开头的名字
print(type(result)) #dict
for i in result:
print(i)
查询并排序:
#排序
result=collection.find().sort('name',pymongo.ASCENDING)
print([i['name'] for i in result])
# 偏移 skip() 分页
result=collection.find().sort('name',pymongo.ASCENDING).skip(0).limit(20)
for i in result:
print(i)
更新数据
#更新
condition={'name':'ZZ1','age':29}
student1={}
student1['age']=26
result=collection.update_many(condition,{ '$set':student1 })
print(result)
print(result.matched_count,' ',result.modified_count)
删除数据
# 删除
result=collection.delete_one( { 'name':"ZZ1" } )
print(result.deleted_count)
# 删除
result=collection.delete_many( { 'age':{ "$lte":19 } } )
print(result.deleted_count)