首先引入包:
pip install pymongo 需要用到如下对象:
MongoClient对象:用于与MongoDB服务器建立连接
client=MongoClient('主机ip',端口) DataBase对象:对应着MongoDB中的数据库
db=client.数据库名称 Collection对象:对应着MongoDB中的集合
col=db.集合名称 Cursor对象:查询方法find()返回的对象,用于进行多行数据的遍历
当调用集合对象的find()方法时,会返回Cursor对象
结合for...in...遍历cursor对象 主要方法:
insert_one:加入一条文档对象
insert_many:加入多条文档对象
find_one:查找一条文档对象
find:查找多条文档对象
update_one:更新一条文档对象
update_many:更新多条文档对象
delete_one:删除一条文档对象
delete_many:删除多条文档对象
插入方法:
insert_one() 传入一个字典,表示插入一个文档
insert_many() 传入一个列表,列表的元素为字典,插入多条文档
 from pymongo import *
'''
插入方法:
insert_one() 传入一个字典,表示插入一个文档
insert_many() 传入一个列表,列表的元素为字典,插入多条文档
'''
def insert():
try:
# 1 创建连接对象
client = MongoClient(host="localhost", port=27017)
# 2 获取数据库,
# 如果这个数据库不存在,就在内存中虚拟创建
# 当在库里创建集合的时候,就会在物理真实创建这个数据库
db = client.demo # 使用demo数据库
# 向stu集合插入数据
# 插入一条
db.stu.insert_one({"name": "zs", "age": 20})
# 插入多条
db.stu.insert_many([{"name": 1}, {"name": 2}])
except Exception as e:
print(e) if __name__ == '__main__':
insert()
查询方法:
find_one()返回满足条件的文档集中第一条数据,类型为字典
如果没有查询结果返回None
方法find()返回满足条件的所有文档,类型为Cursor对象,可以使用for...in遍历,每项为字典对象
如果没有查询结果返一个空的Cursor对象
 from pymongo import *
'''
查询方法:
find_one()返回满足条件的文档集中第一条数据,类型为字典
如果没有查询结果返回None
方法find()返回满足条件的所有文档,类型为Cursor对象,可以使用for...in遍历,每项为字典对象
如果没有查询结果返一个空的Cursor对象
'''
def select():
try:
# 1 创建连接对象
client = MongoClient(host="localhost", port=27017)
# 2 获取数据库,
# 如果这个数据库不存在,就在内存中虚拟创建
# 当在库里创建集合的时候,就会在物理真实创建这个数据库
db = client.demo # 使用demo数据库
# 从stu查询数据
# 查询一条,返回一个字典,如果没有结果返回None
res = db.stu.find_one({"age": 18})
print(res)
# 查询全部结果,返回一个Cursor可迭代对象,每一个元素是字典
# 如果没有查询结果会返回一个空的Cursor对象
res = db.stu.find({"age": {"$gt": 18}})
print(res)
except Exception as e:
print(e) if __name__ == '__main__':
select()
修改方法:
update_one()修改满足条件的文档集中的第一条文档
update_many()修改满足条件的文档集中的所有文档
注意:使用$set操作符修改特定属性的值,否则会修改整个文档
 from pymongo import *
'''
修改方法:
update_one()修改满足条件的文档集中的第一条文档
update_many()修改满足条件的文档集中的所有文档
注意:使用$set操作符修改特定属性的值,否则会修改整个文档
'''
def update():
try:
# 1 创建连接对象
client = MongoClient(host="localhost", port=27017)
# 2 获取数据库,
# 如果这个数据库不存在,就在内存中虚拟创建
# 当在库里创建集合的时候,就会在物理真实创建这个数据库
db = client.demo # 使用demo数据库
# 修改数据
# 修改第一条符合条件的数据,传入条件和修改结果
db.stu.update_one({"age": 18},{"$set": {"age": 100}}) # 把年龄是18的第一条年龄改成100
# 所有符合条件数据都修改
# db.stu.update_many({"age": 18},{"$set": {"age": 100}}) # 年龄18的所有数据年龄改成100
except Exception as e:
print(e) if __name__ == '__main__':
update()
删除方法:
delete_one()删除满足条件的文档集中第一条文档
delete_many()删除满足条件的所有文档
注意:使用$set操作符修改特定属性的值,否则会修改整个文档
 from pymongo import *
'''
删除方法:
delete_one()删除满足条件的文档集中第一条文档
delete_many()删除满足条件的所有文档
注意:使用$set操作符修改特定属性的值,否则会修改整个文档
'''
def delete():
try:
# 1 创建连接对象
client = MongoClient(host="localhost", port=27017)
# 2 获取数据库,
# 如果这个数据库不存在,就在内存中虚拟创建
# 当在库里创建集合的时候,就会在物理真实创建这个数据库
db = client.demo # 使用demo数据库
# 修改数据
# 修改第一条符合条件的文档删除
db.stu.delete_one({"age": 18}) # 把年龄是18的第一条文档删除
# 所有符合条件数据都删除
db.stu.delete_many({"age": 18}) # 年龄18的所有文档删除
except Exception as e:
print(e) if __name__ == '__main__':
delete()

案例:
使用python向集合t3中插入1000条文档,文档的属性包括_id、name
_id的值为0、1、2、3...999
name的值为'py0'、'py1'...
查询显示出_id为100的整倍数的文档,如100、200、300...,并将name输出
 import pymongo
if __name__ == '__main__':
try:
# 1 获得连接对象
client = pymongo.MongoClient(host="localhost", port=27017)
# 2 获取数据库
db = client.demo
# 3 执行业务逻辑 数据库操作
# 插入1000条数据 for id in range(0,1000):
db.t3.insert_one({"_id": id, "name": "py%s"% id}) # 取出符合条件的数据
match = {
"$where": "function(){return this._id%100 == 0 }",
}
res = db.t3.find(match, {"_id": 0, "name": 1})
for info in res:
print(info) except Exception as e:
print(e)

python与mongodb的交互 增删改差的更多相关文章

  1. 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)

    本文利用MongoDB官方发布的C#驱动,封装了对MongoDB数据库的增删改查访问方法.先用官方提供的mongo-csharp-driver ,当前版本为1.7.0.4714 编写数据库访问帮助类 ...

  2. python学习之-成员信息增删改查

    python学习之-成员信息增删改查 主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证,#!/usr/bin/env p ...

  3. 利用koa实现mongodb数据库的增删改查

    概述 使用koa免不了要操纵数据库,现阶段流行的数据库是mongoDB,所以我研究了一下koa里面mongoDB数据库的增删改查,记录下来,供以后开发时参考,相信对其他人也有用. 源代码请看:我的gi ...

  4. python和mongodb简单交互

    python和mongodb简单交互 1.安装pymongo: pip3 install pymongo 2.pymongo的简单用法: # /usr/bin/env python3 import p ...

  5. python manage.py shell 的增删改查

    python manage.py shell 的增删改查 guoguo-MacBook-Pro:myblog guoguo$ python manage.py shell Python 3.5.1 ( ...

  6. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...

  7. python连接集群mongodb,封装增删改查

    1.下载pymongo pip install pymongo 2.直接上代码 [ini配置文件] 封装读ini省略~~ [db.py] class Database(): def __init__( ...

  8. MongoDB --- 02. 基本操作,增删改查,数据类型,比较符,高级用法,pymongo

    一.基本操作 . mongod 启动服务端 2. mongo 启动客户端 3. show databses 查看本地磁盘的数据库 4. use 库名 切换到要使用的数据库 5. db 查看当前使用的数 ...

  9. python 10min系列之实现增删改查系统

    woniu-cmdb 奇技淫巧--写配置文件生成增删改查系统 视频教程 项目主页跪求github给个star, 线上demo,此页面都是一个配置文件自动生成的 详细的文章介绍和实现原理分析会发布在我的 ...

随机推荐

  1. 关于classpath

    classpath是用来设计JAVA类文件(.class)所在的路径 classpath的主要作用就是当你在一个shell窗口下执行命令时,可以从在classpath中设置的目录搜索,不用一层再一层的 ...

  2. 【前端单元测试入门04】Karma

    Karma 官方介绍 A simple tool that allows you to execute JavaScript code in multiple real browsers. 即一个允许 ...

  3. Java测试(一)

    关于while和do-while循环,下列说法正确的是  A 两种循环除了格式不同外,功能完全相同  B 与do-while语句不通的是,while语句的循环至少执行一次  C do-while语句首 ...

  4. JDK1.8源码(四)——java.util.Arrays 类

    java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用. 1.asList public static ...

  5. ASUS T100TA 换屏要记

    建议完整阅读后再执行操作! 参考: [图片]华硕T100换触摸屏详细教程,全网第一发[平板电脑吧]_百度贴吧 [图片]我是这么修T100的……换外屏[win8平板吧]_百度贴吧 淘宝信息: 选择适用型 ...

  6. KMP(构建next数组)

    字符串匹配算法KMP, 核心思想是尽可能利用已经匹配的结果, 跳过尽可能多的不需要匹配的情况 重点和难点都在next数组的建立上 1. KMP算法的next数组求解 以模式串 a b a c a b ...

  7. pycharm 的安装及selenium环境的搭建

    6.呵呵哒,前面写了一篇pycharm的安装,,结果自己都看不懂了,copy了别人的,,,自己现在再写一遍,这篇文章主要写pycharm 的安装及selenium 环境的搭建,selenium的搭建不 ...

  8. Java多线程:乐观锁、悲观锁、自旋锁

    悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据 ...

  9. 使用selenium时提示:ImportError:No module named selenium

    问题分析: 用的是mac系统,已经通过sudo pip install -U selenium安装好了selenium, 但是无论用命令行还是用sublime导入selenium都会提示错误. 于是查 ...

  10. C#,DataHelper,一个通用的帮助类,留个备份。

    using System; using Newtonsoft.Json; using System.IO; using System.Text; namespace CarHailing.Base { ...