mongodb和python交互

pip install pymongo

# 导入模块
from pymongo import MongoClient

# 如果是本地连接host,port参数可以省略
# client = MongoClient() 
# 1.连接ubantu的mongodb客户端
client = MongoClient(host="192.168.243.130") 

# 支持[]和.语法
# collection = client[数据库名][集合名]
# 2.获取集合对象
collection = client.数据库名.集合名


添加一条数据
collection.insert_one({"name": "curry30"})
添加多条数据
collect.insert_many([{"name": "harden"},
                     {"name": "james"},
                     {"name": "kobe"}])

查找一条数据

ret = collect.find_one()
print(ret)
查找全部数据

ret = collect.find()
# find函数默认返回的结果是Cursor对象,是一个可迭代对象
data_list = list(ret)
print(data_list)

覆盖式更新

collect.update({"name": "郭靖"}, {"name": "黑马程序员"})
批量更新

# 旧语法
collect.update({"name": "kobe"}, {"$set": {"name": "kobe24"}}, multi=True)

# 新语法,没有multi=True参数
collect.update_many({"name": "kobe24"}, {"$set": {"name": "kobe_24"}})

delete_one()删除一条数据

collect.delete_one({"name": "harden"})
delete_many()删除全部数据

collect.delete_many({"name": "james"})

需要权限认证的方式
from pymongo import MongoClient
from urllib.parse import quote_plus

user = 'python' # 账号
password = 'python' # 密码
host = '127.0.0.1' # ip地址
port = 27017 # 端口

# quote_plus函数:对url进行编码
# uri = mongodb://python:python@127.0.0.1
uri = "mongodb://%s:%s@%s" % (quote_plus(user),
                              quote_plus(password),
                              host)

# 链接客户端
client = MongoClient(uri, port=port)
# 获取集合对象
collection = client.数据库名称.集合名

  • 查看当前的数据库:db(没有切换数据库的情况下默认使用test数据库)
  • 查看所有的数据库:show dbs /show databases
  • 切换数据库:use db_name
    • db_nameshow dbs后返回的数据库名
  • 删除当前的数据库:db.dropDatabase()
  • 无需手动创建集合: 向不存在的集合中第一次添加数据时,集合会自动被创建出来
  • 手动创建集合:
    • db.createCollection(name,options)
    • db.createCollection("stu")
    • db.createCollection("sub", { capped : true, size : 10 } )
    • 参数capped:默认值为false表示不设置上限,值为true表示设置上限
    • 参数size:集合所占用的字节数。 当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时, 会将之前的数据覆盖,单位为字节
  • 查看集合:show collections
  • 删除集合:db.集合名称.drop()
  • 检查集合是否设定上限:db.集合名.isCapped()

 

posted @ 2020-11-12 22:23  hello_Ms_w  阅读(84)  评论(0编辑  收藏  举报