引入库文件
import pymongo
链接数据库
myclient= pymongo. MongoClient( 'localhost' , 27017 )
查看数据库和集合
dbs= myclient. list_database_names( )
dbs
['admin', 'config', 'local', 'student', 'tset']
mydb= myclient[ 'test' ]
cols= mydb. list_collection_names( )
cols
[]
c1= mydb[ 'c1' ]
c2= mydb. create_collection( "c2" )
mydb. drop_collection( "c2" )
{'nIndexesWas': 1, 'ns': 'test.c2', 'ok': 1.0}
for i in c1. find( ) :
print ( i)
d1= { "name" : "kjfg" , "age" : 18 , "major" : "大数据技术" }
x= c1. insert_one( d1)
print ( x. inserted_id)
664c480e0ed1c17f8f8c2c9c
for i in c1. find( ) :
print ( i)
{'_id': ObjectId('664c480e0ed1c17f8f8c2c9c'), 'name': 'kjfg', 'age': 18, 'major': '大数据技术'}
d2= [
{ "name" : "jasgdk" , "age" : 14 , "major" : "大数据技术" } ,
{ "name" : "kadh" , "age" : 49 , "major" : "大数据技术" } ,
{ "name" : "xdk" , "age" : 45 , "major" : "大数据技术" } ,
]
x= c1. insert_many( d2)
print ( x. inserted_ids)
[ObjectId('664c4d170ed1c17f8f8c2ca0'), ObjectId('664c4d170ed1c17f8f8c2ca1'), ObjectId('664c4d170ed1c17f8f8c2ca2')]
for i in c1. find( { "major" : "大数据技术" } , { "_id" : 0 } ) :
print ( i)
{'name': 'kjfg', 'age': 18, 'major': '大数据技术'}
{'name': 'jasgdk', 'age': 14, 'major': '大数据技术'}
{'name': 'kadh', 'age': 49, 'major': '大数据技术'}
{'name': 'xdk', 'age': 45, 'major': '大数据技术'}
{'name': 'jasgdk', 'age': 14, 'major': '大数据技术'}
{'name': 'kadh', 'age': 49, 'major': '大数据技术'}
{'name': 'xdk', 'age': 45, 'major': '大数据技术'}
q= { "age" : { "$gt" : 20 } }
for i in c1. find( q, { "_id" : 0 } ) :
print ( i)
{'name': 'kadh', 'age': 49, 'major': '大数据技术'}
{'name': 'xdk', 'age': 45, 'major': '大数据技术'}
{'name': 'kadh', 'age': 49, 'major': '大数据技术'}
{'name': 'xdk', 'age': 45, 'major': '大数据技术'}
q1= { "name" : { "$regex" : "^k" } }
for i in c1. find( q1, { "_id" : 0 } ) :
print ( i)
{'name': 'kjfg', 'age': 18, 'major': '大数据技术'}
{'name': 'kadh', 'age': 49, 'major': '大数据技术'}
pin= [
{ "$group" : { "_id" : "$major" , "max_age" : { "$max" : "$age" } } }
]
result= c1. aggregate( pin)
for i in result:
print ( i)
{'_id': '大数据技术', 'max_age': 49}
pin1= [
{ "$group" : { "_id" : "$major" , "avg_age" : { "$avg" : "$age" } , "count" : { "$sum" : 1 } } } ,
{ "$sort" : { "avg_age" : - 1 } }
]
result= c1. aggregate( pin1)
for i in result:
print ( i)
{'_id': '大数据技术', 'avg_age': 33.42857142857143, 'count': 7}
c1= mydb[ 'c1' ]
for d in c1. find( ) :
print ( d)
{'_id': ObjectId('664c480e0ed1c17f8f8c2c9c'), 'name': 'kjfg', 'age': 18, 'major': '大数据技术'}
{'_id': ObjectId('664c49710ed1c17f8f8c2c9d'), 'name': 'jasgdk', 'age': 14, 'major': '大数据技术'}
{'_id': ObjectId('664c49710ed1c17f8f8c2c9e'), 'name': 'kadh', 'age': 49, 'major': '大数据技术'}
{'_id': ObjectId('664c49710ed1c17f8f8c2c9f'), 'name': 'xdk', 'age': 45, 'major': '大数据技术'}
{'_id': ObjectId('664c4d170ed1c17f8f8c2ca0'), 'name': 'jasgdk', 'age': 14, 'major': '大数据技术'}
{'_id': ObjectId('664c4d170ed1c17f8f8c2ca1'), 'name': 'kadh', 'age': 49, 'major': '大数据技术'}
{'_id': ObjectId('664c4d170ed1c17f8f8c2ca2'), 'name': 'xdk', 'age': 45, 'major': '大数据技术'}
c1. update_one( { "name" : "aa3" } , { "$set" : { "age" : 77 } } )
for d in c1. find( { "name" : "aa3" } , { "_id" : 0 } ) :
print ( d)
q= { "major" : "大数据技术" }
n_d= { "$inc" : { "age" : 5 } }
c1. update_many( q, n_d)
for i in c1. find( { } , { "_id" : 0 } ) :
print ( i)
{'name': 'kjfg', 'age': 28, 'major': '大数据技术'}
{'name': 'jasgdk', 'age': 24, 'major': '大数据技术'}
{'name': 'kadh', 'age': 59, 'major': '大数据技术'}
{'name': 'xdk', 'age': 55, 'major': '大数据技术'}
{'name': 'jasgdk', 'age': 24, 'major': '大数据技术'}
{'name': 'kadh', 'age': 59, 'major': '大数据技术'}
{'name': 'xdk', 'age': 55, 'major': '大数据技术'}
c1. delete_many( { "name" : { "$regex" : "^k" } } )
for i in c1. find( { } , { "_id" : 0 } ) :
print ( i)
{'name': 'jasgdk', 'age': 24, 'major': '大数据技术'}
{'name': 'xdk', 'age': 55, 'major': '大数据技术'}
{'name': 'jasgdk', 'age': 24, 'major': '大数据技术'}
{'name': 'xdk', 'age': 55, 'major': '大数据技术'}
for i in c1. find( { } , { "_id" : 0 } ) . sort( "age" , 1 ) :
print ( i)
{'name': 'jasgdk', 'age': 24, 'major': '大数据技术'}
{'name': 'jasgdk', 'age': 24, 'major': '大数据技术'}
{'name': 'xdk', 'age': 55, 'major': '大数据技术'}
{'name': 'xdk', 'age': 55, 'major': '大数据技术'}
for i in c1. find( { } , { "_id" : 0 } ) . limit( 1 ) :
print ( i)
{'name': 'jasgdk', 'age': 24, 'major': '大数据技术'}
for i in c1. find( { } , { "_id" : 0 } ) . skip( 2 ) :
print ( i)
{'name': 'jasgdk', 'age': 24, 'major': '大数据技术'}
{'name': 'xdk', 'age': 55, 'major': '大数据技术'}