«

mongodb和python交互

时间:2023-3-1 20:06     作者:wen     分类: mongodb


一、mongodb和python交互的模式

pymongo提供了mongodb和python交互的所有方法

安装方式:

pip install pymongo

二、使用pymongo

1、导入pymongo并选择要操作的集合

数据库和集合能够自动创建

  1. 无需权限认证的方式创建连接对象以及集合操作对象
  2. 需要权限认证的方式创建连接对象以及集合对象
from pymongo import MongoClient
from urllib import quote_plus

# 账号
user = "python"
# 密码
password = "python"
# host
host = "127.0.0.1"
# port
port = 27017
uri = "mongodb://%s:%s@%s" % (quote_plus(user),quote_plus(password),host)
# qute_plus函数:对url进行编码
# uri = mongodb://python:python@127.0.0.1
client = MongoClient(uri,port=port)
collection = client.db名.集合名
from pymongo import MongoClient

# 如果是本地连接host, port参数可以省略
client = MongoClient(host, port)

#选择一个库
db = client['admin']
#权限认证
db.authenticate("python",'python')
# 选择一个集合
#  collection = client.db名.集合名
# 与下面用户相同
collection = client[db名][集合名]

2、insert()添加数据

insert()可以批量的插入数据列表,也可以插入一条数据

collection.insert({一条数据})
collection.insert([{一条数据},{数据二}])

3、find_one()查找一条数据

接受一个字典形式的条件,返回字典形式的整体数据,如果条件为空,则返回第一天

ret = client.test.find_one({"name":"test001"})
# 包含mongodb的ObjectID对象的字典
print(ret)
# 清除mongodb的ObjectID对象的k,v
_ = ret.pop('_id')
print(ret)

4、find()查询多条数据

ret = client.test.find({"name":"test001"})
for data in ret:
    print(data)

5、update()更新数据(全文档覆盖或指定键值,更新一条或多条)

  1. 更新一条数据;全文档覆盖;存在就更新,不存在就插入

    data = {"msg":"这是一条数据",'name':"哈哈"}
    client.test.test.update({"haha":"heihei"},{"$set":data},upsert=True)
  2. 更新多条数据;全文档覆盖;存在就更新,不存在就插入

    data = {"msg":"这是一条数据",'name':"哈哈"}
    client.test.test.update({},{"$set":data},multi=True,upsert=True)
  3. 更新一条数据;指定键值;存在就更新,不存在就插入

    data = {"msg":'指定只更新msg___1'}
    client.test.test.update({},{"$set":data},upsert=True)
  4. 更新多条数据;指定键值,存在就更新,不存在就插入

    data = {"msg":'指定只更新msg___2'}
    client.test.test.update({},{"$set":data},multi=True,upsert=True)

6、delete_one()删除一条数据

collection.delete_one({"name":"test001"})

7、delete_many()删除全部数据

collection.delete_many({"name":"test001"})

三、pymongo模块其它API

文档

标签: mongodb python