首先引入包:
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. 06_java 时间获取练习_Date\SimpleDateFormat\Calendar类练习

     1.获取当前的日期,并把这个日期转换为指定格式的字符串,如2088-08-08 08:08:08 import java.text.SimpleDateFormat; import java.uti ...

  2. javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)

    private Session session; private Transport transport; private String mailHost = ""; privat ...

  3. 【Python】 文件和操作文件方法

    文件 ■ 基本的文件用法 f = open("path","mode") mode有a,w,r,b,+等.默认为r.模式与打开文件时的动作有关系,比如用w打开的 ...

  4. Python类中的self到底是干啥的

    Python类中的self到底是干啥的 Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上.后来对Python渐渐熟悉了一点,再回头看self的 ...

  5. ElasticSearch之 控制相关度原理讲解

    控制相关度 相关度评分背后的理论 如何计算评分的 Lucene 使用布尔模型(Boolean model) 查找匹配文档 并主要的借鉴了 词频/逆向文档频率(term frequency/invers ...

  6. 用python程序来画花

    from turtle import * import time setup(600,800,0,0) speed(0) penup() seth(90) fd(340) seth(0) pendow ...

  7. CSS速查列表-1-(background)背景

    CSS 背景 CSS 属性定义背景效果: background-color background-image background-repeat background-attachment backg ...

  8. Git常用命令(一)------ 本地操作

    本文总结自廖雪峰的网站. 几个名词: 工作区(Working Directory):电脑里能看到的目录 版本库(Repository):包含暂存区和master 暂存区(Stage):待放入maste ...

  9. [福大软工] W班 评测作业对应表

  10. PTA題目的處理(三)

    题目7-1 高速公路超速處罰 1.實驗代碼 #include <stdio.h> //#include <stdlib.h> int main() { int csp,lsp; ...