【MongoDB详细使用教程】一、Mac安装MongoDB

【MongoDB详细使用教程】二、MongoDB基本操作

【MongoDB详细使用教程】三、高级查询

【MongoDB详细使用教程】四、python操作MongoDB

【MongoDB详细使用教程】五、MongoDB的数据库管理

使用第三方库pymongo来实现python对MongoDB的操作

pymongo官方文档:https://api.mongodb.com/python/current/tutorial.html

1、安装pymongo

pip install 安装pymongo

2、连接数据库

import pymongo

client = pymongo.MongoClient('localhost', 27017)    # 连接服务器,需要先开启服务
db = client['mymongo'] # 选择数据库
data = db.students.find() # 查询数据,返回一个游标,通过对游标进行遍历来获取每条数据
print(db)
print(data) # 对查询到的数据进行遍历,每一项为一个dict
for i in data:
print(i, type(i))

返回结果:

MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True)
Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'mymongo')
<pymongo.cursor.Cursor object at 0x1058e57f0>
{'_id': ObjectId('5db642b30f98841018f76965'), 'name': 'chen', 'age': 18.0, 'grade': '一年级'} <class 'dict'>
{'_id': ObjectId('5db642bc0f98841018f76966'), 'name': 'wang', 'age': 19.0, 'grade': '二年级'} <class 'dict'>
{'_id': ObjectId('5db653920f98841018f7696b'), 'name': 'xu', 'age': 20.0, 'grade': '三年级', 'text': ['女', '研究员']} <class 'dict'>
{'_id': ObjectId('5db654660f98841018f7696c'), 'name': 'ma', 'age': 20.0, 'grade': '二年级', 'text': ['女', '副教授', '副处长']} <class 'dict'>
{'_id': ObjectId('5db68d190f98841018f76970'), 'name': 'cheng', 'age': 21.0, 'grade': '四年级'} <class 'dict'>
{'_id': ObjectId('5db68f6c0f98841018f76971'), 'name': 'cheng', 'age': 22.0, 'grade': '五年级'} <class 'dict'>

3、操作数据库

python操作mysql和oracle都是通过直接执行sql来完成,

而对MongoDB的操作是通过pymongo提供的方法来完成的。

本节不再把语法单独提出,所有"students"字样均为集合名。

3.1、查

data_all = db.students.find()   # 查询全部
data_lim = db.students.find().limit(1) # 返回第一条
data_the = db.students.find({"name": "xu"}) # 条件查询(结果只有1条匹配)
data_one = db.students.find_one() # 查询一条 print(data_all, type(data_all))
print(data_lim, type(data_lim))
print(data_the, type(data_the))
print(data_one, type(data_one))

虽然后3个方法得到的数据都是1条,但只有使用.find_one()时会返回dict,其余返回的都是Cursor(游标),需要遍历才可以得到具体数据。

<pymongo.cursor.Cursor object at 0x105a04780> <class 'pymongo.cursor.Cursor'>
<pymongo.cursor.Cursor object at 0x105a047f0> <class 'pymongo.cursor.Cursor'>
<pymongo.cursor.Cursor object at 0x105a04860> <class 'pymongo.cursor.Cursor'>
{'_id': ObjectId('5db642b30f98841018f76965'), 'name': 'chen', 'age': 18.0, 'grade': '一年级'} <class 'dict'>

3.2、增

# 插入单条
db.students.insert_one({"name": "zuo", "age": 40, "grate": "九年级"}) # 插入多条
many_data = [{"name": "ding", "age": 40, "grate": "九年级"},
{"name": "liao", "age": 42, "grate": "十年级"},
{"name": "zhao", "age": 35, "grate": "九年级"}]
db.students.insert_many(many_data)

3.3、改

# 修改单条
db.students.update_one(filter={"name": "zuo"}, update={"$set": {"grate": "十年级"}}) # 修改全部匹配项
db.students.update_many(filter={"name": "zuo"}, update={"$set": {"grate": "十年级"}}) # filter后为条件,update后为修改后值,其中$set为固定语法。

3.4、删

# 删除单条
db.students.delete_one({}) # 删除全部数据的第一条
db.students.delete_one({"name": "zuo"}) # 删除匹配项的第一条 # 删除多条
db.students.delete_many({"name":"zuo"}) # 删除集合中的全部数据
db.students.delete_many({"name":"zuo"}) # 删除全部匹配项

【MongoDB详细使用教程】四、python操作MongoDB的更多相关文章

  1. 【MongoDB详细使用教程】二、MongoDB基本操作

    目录 数据类型 数据库操作 集合操作 数据操作 增 查 改 修改整行 修改指定字段的值 删 数据类型 MongoDB常见类型 说明 Object ID 文档ID String 字符串,最常用,必须是有 ...

  2. 【MongoDB详细使用教程】五、MongoDB的数据库管理

    目录 1.数据库安全 1.1.创建管理员账号和密码 1.2.设置服务状态为需要验证用户 1.3.创建用户账户和密码 1.4.忘记密码/修改密码 2.主从服务器 2.1.创建服务器目录,用于分别存放主从 ...

  3. 【MongoDB详细使用教程】三、高级查询

    目录 1.使用比较运算符查询 2.使用关键字查询 2.1.in/not in 关键字 2.2.size 关键字 2.3.exists 关键字 2.4.or 关键字 3.模糊查询 4.查询结果排序 5. ...

  4. python操作mongodb

    # python操作mongodb # 首先,引入第三方模块pymongo,该模块是python用来操作mongodb的 import pymongo # 第二步,设置ip地址,以及表格名称,表格名字 ...

  5. 【转】Python操作MongoDB

    Python 操作 MongoDB   请给作者点赞--> 原文链接 这篇文章主要介绍了使用Python脚本操作MongoDB的教程,MongoDB作为非关系型数据库得到了很大的宣传力度,而市面 ...

  6. Python 操作 mongodb 数据库

    原文地址:https://serholiu.com/python-mongodb 这几天在学习Python Web开发,于 是做准备做一个博客来练练手,当然,只是练手的,博客界有WordPress这样 ...

  7. 使用Python操作MongoDB

    MongoDB简介(摘自:http://www.runoob.com/mongodb/mongodb-intro.html) MongoDB 由C++语言编写,是一个基于分布式文件存储的开源数据库系统 ...

  8. python操作三大主流数据库(10)python操作mongodb数据库④mongodb新闻项目实战

    python操作mongodb数据库④mongodb新闻项目实战 参考文档:http://flask-mongoengine.readthedocs.io/en/latest/ 目录: [root@n ...

  9. python操作三大主流数据库(9)python操作mongodb数据库③mongodb odm模型mongoengine的使用

    python操作mongodb数据库③mongodb odm模型mongoengine的使用 文档:http://mongoengine-odm.readthedocs.io/guide/ 安装pip ...

随机推荐

  1. python接口测试(post,get)-传参(data和json之间的区别)

    python接口测试如何正确传参: POST 传data:data是python字典格式:传参data=json.dumps(data)是字符串类型传参 #!/usr/bin/env python3 ...

  2. JVM调优(一)——参数查询和问题排查

    JVM的参数类型 标准参数 -help -server -client -version -showversion -cp -classpath X参数 -Xint: 解释执行 -Xcomp:第一次使 ...

  3. Linux6.x 更换国内比较快的yum源-通用版

    ----------更换国内比较快的yum源----------- ----------163--------- cd /etc/yum.repos.d mv CentOS-Base.repo Cen ...

  4. frp 端口映射

    简介 frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透. 场景 利用处于内网或防火墙后 ...

  5. 23种设计模式之模板方法(Template Pattern)

    定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 AbstractClass:抽象类.用来定义算法骨架和原语操作,在这个类里 ...

  6. ZooKeeper单机服务端的启动源码阅读

    程序的入口QuorumPeerMain public static void main(String[] args) { // QuorumPeerMain main = new QuorumPeer ...

  7. Ubuntu su命令 Authentication failure的解决办法

    重新设置root的密码: $ sudo passwd root Enter new UNIX password: Retype new UNIX password: passwd: password ...

  8. Mysql触发器实例分析

    所谓触发器,就是在定义在表对象上.当触发器所在的表出现指定的事件时,会触发对应表的delete update insert的操作.说的有点绕口,其实就是到监视某种情况,然后去触发某种操作. 触发器是如 ...

  9. Python验证码

    from PIL import Image, ImageDraw, ImageFont, ImageFilter import random # 随机字母: def rndChar(): return ...

  10. Bootstrap入门学习笔记(只记录了效果)

    基本头文件 <!DOCTYPE html> <html> <head> <title>Bootstrap 实例</title> <me ...