pymongo 模块

安装pymongo模块:

pip3 install pymongo

导入模块:

from pymongo import *

pymongo提供四大对象与mongodb交互:

1、MongoClient对象:与mongodb建立连接
2、DataBase对象:mongodb中的数据库
3、Collection对象:mongodb中的集合
4、Cursor对象:查询方法find()返回的对象,用于进行多行数据的遍历

MongoClient对象

创建连接

# 创建连接 MongoClient对象
# client=MongoClient('主机ip',端口)  mongodb默认端口是27017
client = MongoClient('192.168.0.101', 27017)

from pymongo import *


# 创建连接 MongoClient 对象
# client = MongoClient('主机ip',端口) mongodb 默认端口是27017

client = MongoClient('192.168.0.101',27017)
创建Datebase对象
db=client.数据库名称
db = client.mytest
from pymongo import *


# 创建连接 MongoClient 对象
# client = MongoClient('主机ip',端口) mongodb 默认端口是27017

client = MongoClient('192.168.0.101',27017)


# 创建 Database 对象
db = client.mytest

创建 Collection对象 文档对象

col=db.集合名称
col = db.hero
from pymongo import *


# 创建连接 MongoClient 对象
# client = MongoClient('主机ip',端口) mongodb 默认端口是27017

client = MongoClient('192.168.0.101',27017)


# 创建 Database 对象
db = client.mytest

# 创建集合
col = db.hero

文档对象方法:

insert_one:插入一条文档对象

insert_many:插入多条文档对象

find_one:查找一条文档对象

find:查找多条文档对象

update_one:更新一条文档对象

update_many:更新多条文档对象

delete_one:删除一条文档对象

delete_many:删除多条文档对象

Cursor对象:

当调用集合对象的find()方法时,会返回Cursor对象,是一个可迭代对象

使用for....in...语句将其内容遍历出来

插入文档数据

insert_one:插入一条文档对象,接收一个字典作为参数

insert_many:插入多条文档对象,接收一个列表作为参数,列表中的元素为字典,表示插入多条文档

插入一条数据:


from pymongo import *

try:
    # 创建连接 MongoClient 对象
    client = MongoClient('192.168.20.219',27017)
    db = client.mytest  # 创建数据库对象
    col = db.hero   # 创建集合对象

    # 插入一条数据,接收一个字典作为参数
    col.insert_one({'name':'狄仁杰','age':18,'gender':1})
except Exception as e:
    print(e)

插入多条文档数据:



from pymongo import *

try:
    # 创建连接 MongoClient 对象
    client = MongoClient('192.168.20.219',27017)
    db = client.mytest  # 创建数据库对象
    col = db.hero   # 创建集合对象

    # 插入一条数据,接收一个字典作为参数
    col.insert_many([{'name':'狄仁杰','age':18,'gender':1},
                     {'name': '孙尚香', 'age': 18, 'gender': 1}
                     ])
except Exception as e:
    print(e)

更新文档数据

update_one:更新一条文档对象

update_many:更新多条文档对象

语法:

更新符合条件的第一条文档

update_one({条件},{更新内容})
from pymongo import *

try:
    # 创建连接 MongoClient 对象
    client = MongoClient('192.168.20.219', 27017)
    db = client.mytest  # 创建数据库对象
    col = db.hero  # 创建集合对象

    # 将妲己的年龄改成19
    # 第一个字典为匹配条件,第二个为更新内容
    col.update_one({'name': '妲己'}, {"$set": {'age': 19}})
except Exception as e:
    print(e)

插入多条孙尚香数据:

更新孙尚香的年龄为20

更新匹配中条件的多条数据

from pymongo import *

try:
    # 创建连接 MongoClient 对象
    client = MongoClient('192.168.20.219', 27017)
    db = client.mytest  # 创建数据库对象
    col = db.hero  # 创建集合对象

    # 将妲己的年龄改成19
    # 第一个字典为匹配条件,第二个为更新内容
    # col.update_one({'name': '妲己'}, {"$set": {'age': 19}})

    # 更新匹配中的所有数据
    col.update_many({'name': '孙尚香'}, {"$set": {'age': 20}})

except Exception as e:
    print(e)

更新后结果:孙尚香age都修改了20.

删除文档数据

delete_one:删除满足条件的第一条文档对象

delete_many:删除满足条件的多条文档对象

delete_one({条件})

from pymongo import *

try:
    # 创建连接 MongoClient 对象
    client = MongoClient('192.168.20.219', 27017)
    db = client.mytest  # 创建数据库对象
    col = db.hero  # 创建集合对象

    # 删除年龄为18岁的英雄
    col.delete_one({'age':18}) # 删除符合条件的第一条文档
    # 删除所有年龄为18岁的英雄
    col.delete_many({'age':18}) # 删除所有符合条件的

except Exception as e:
    print(e)

数据查询

find_one()返回满足条件的文档集中第一条数据,类型为字典

find()返回满足条件的所有文档,类型为Cursor对象,可以使用for...in遍历,每项为字典对象

find_one() 返回第一条符合条件的文档

from pymongo import *

try:
    # 创建连接 MongoClient 对象
    client = MongoClient('192.168.20.219', 27017)
    db = client.mytest  # 创建数据库对象
    col = db.hero  # 创建集合对象

    # 查询gender为1的数据,返回第一条匹配成功的
    res = col.finc_one({'gender':1})
    print(res)
except Exception as e:
    print(e)

find() 返回cursor对象,使用for...in...语句可将内容迭代取出

from pymongo import *

try:
    # 创建连接 MongoClient 对象
    client = MongoClient('192.168.20.219', 27017)
    db = client.mytest  # 创建数据库对象
    col = db.hero  # 创建集合对象
    # 查询gender为1的数据,返回所有匹配成功的
    res = col.find({'gender':1})
    for i in res:
        print(i)
except Exception as e:
    print(e)
数据库基础 all right reserved,powered by Gitbook文件修订时间: 2018-04-19 09:33:22