nosql

引入库文件

import pymongo

链接数据库

#连接数据库,指定ip和端口
myclient=pymongo.MongoClient('localhost',27017)

查看数据库和集合

#查看数据库
dbs=myclient.list_database_names()
dbs
['admin', 'config', 'local', 'student', 'tset']
#切换/创建(本身不存在)数据库
mydb=myclient['test']#切换数据库test

#查看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': '大数据技术'}
# 排序--sort():按照年龄进行升序排序
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': '大数据技术'}
#限制返回数--limit():只返回指定个数的文档
for i in c1.find({},{"_id":0}).limit(1):
     print(i)
{'name': 'jasgdk', 'age': 24, 'major': '大数据技术'}
#跳过--skip():跳过指定的文档数,返回剩下的文档
for i in c1.find({},{"_id":0}).skip(2):
    print(i)
{'name': 'jasgdk', 'age': 24, 'major': '大数据技术'}
{'name': 'xdk', 'age': 55, 'major': '大数据技术'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值