Python操作MongoDB

库引入

Python连接MongoDB数据库,这里我们使用 PyMongo 驱动来连接。

import pymongo

链接数据库

创建数据库 需要使用 MongoClient 对象,并且指定连接的ip和端口号。

myclient=pymongo.MongoClient("localhost",27017)

 

选择test数据库

切换/创建(不存在的时候)数据库test

mydb=myclient['test']

 

新建student集合

切换/显示创建(不存在的时候)集合

mycoll=mydb['c1']

 

查看数据库和集合

dbs=myclient.list_database_names()#查看所有数据库
dbs
['admin', 'config', 'local', 'test']

注意: 在 MongoDB 中,数据库只有在内容插入后才会创建! 就是说,数据库创建后要创建集合(数据表)并插入一个文档(记录),数据库才会真正创建。

查看集合

colls=mydb.list_collection_names()#查看/罗列集合名
mycoll=mydb['student']

显示创建和删除集合

create_collection()创建集合,drop_collection(“love”)删除集合

mydb=myclient['test']
mydb.create_collection("love")#创建集合love
mydb.drop_collection("love")#删除集合love

文档增删改查

查看文档

myclient=pymongo.MongoClient("localhost",27017)#链接服务
mydb=myclient['test']#选择数据库
mycoll=mydb['c1']#选择集合
docs=mycoll.find()#查看文档
#打印文档
for i in docs:
    print(i)

{'_id': ObjectId('664bef6e3dceef39a819193e'), 'name': 'aa1', 'age': 18.0}
{'_id': ObjectId('664bef6e3dceef39a819193f'), 'name': 'aa2', 'age': 18.0}
{'_id': ObjectId('664bef6e3dceef39a8191940'), 'name': 'aa4', 'age': 20.0}
{'_id': ObjectId('664bef6e3dceef39a8191941'), 'name': 'aa5', 'age': 17.0}

插入文档

插入单个文档
d1={"name":"hakgd","age":88,"major":"大数据"}#python中key也需要使用引号括起来
x=mycoll.insert_one(d1)#插入单个文档insert_one
print(x.inserted_id)#打印文档_id

<pymongo.results.InsertOneResult object at 0x000002049FE76278>
664bfe3b32a3dbc8cddeb487

insert_one() 方法返回 InsertOneResult 对象,该对象包含 inserted_id 属性,它是插入文档的 id值。

插入多个文档

集合中插入多个文档使用 insert_many() 方法,该方法的第一参数是字典列表。

insert_many() 方法返回 InsertManyResult 对象,该对象包含 inserted_ids 属性,该属性保存着所有插入文档的_id 值。

d = [
    {name:"张三", age:18, sex:"男",major:"大数据技术"},
    {name:"李四", age:19, sex:"男",major:"大数据技术"},
    {name:"王五", age:18, sex:"女",major:"人工智能"}
]
print(d)

查询文档

查询之前插入的多条文本

dos=mycoll.find()
for i in dos:
    print(i)

文档修改

将{major:"人工智能"}修改为{major:"大数据技术"}

q = {"major":"人工智能"} # 查询条件
n_d = {"$set":{"major":"大数据技术"}}# 新数据

mycoll.update_one(q,n_d) # 修欧匹配到的第一个文档

for d in mycoll.find() :
    print(d)

使用find()方法

 给{name:"张三"}的年龄加2岁;并使用find()方法查看是否成功

删除文档

删除{name:"李四"}的文档

mycoll.delete_one({"name":"王五"})

使用find()方法查看是否成功

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值