一、安装与更新

  1. pip install pymongo # 常用安装
  2. pip install pymongo==3.5. # 指定版本安装
  3. pip install --upgrade pymongo # 更新安装

二、创建数据库、集合

  1. #!/usr/bin/python3
  2. # -*- coding: utf- -*-
  3. import pymongo
  4.  
  5. dbcon = pymongo.MongoClient("mongodb://10.x.x.x:27017") # 连接数据库
  6. print(dbcon.database_names()) # 已存在的数据库
  7.  
  8. 结果: ['admin', 'config', 'lion', 'local']
  9.  
  10. mydb = dbcon["lion"] # 选择lion数据库
  11. print(mydb.collection_names()) # 已存在的集合
  12.  
  13. mycol = mydb["kzg_col"] # 选择集合

  

三、插入数据

  1、插入单条数据(返回一个id)

  1. #!/usr/bin/python3
  2. # -*- coding: utf- -*-
  3. import pymongo
  4.  
  5. dbcon = pymongo.MongoClient("mongodb://10.x.x.x:27017") # 连接数据库
  6. mydb = dbcon["lion"] # 选择lion数据库
  7. mycol = mydb["kzg_col"] # 选择集合名
  8.  
  9. insertData = { "name": "RUNOOB2", "alexa": "", "url": "https://www.runoob.com" }
  10. ins = mycol.insert_one(insertData) # 插入一条数据
  11. print(ins.inserted_id)
  12.  
  13. 结果: 5d81f4961565d78070165d24

  2、插入多条数据(返回多个id)

  1. #!/usr/bin/python3
  2. # -*- coding: utf- -*-
  3. import pymongo
  4.  
  5. dbcon = pymongo.MongoClient("mongodb://10.20.x.x:27017") # 连接数据库
  6. mydb = dbcon["lion"] # 选择lion数据库
  7. mycol = mydb["kzg_col"] # 选择集合名
  8.  
  9. mylist = [
  10. { "name": "Taobao", "alexa": "", "url": "https://www.taobao.com" },
  11. { "name": "QQ", "alexa": "", "url": "https://www.qq.com" },
  12. { "name": "Facebook", "alexa": "", "url": "https://www.facebook.com" },
  13. { "name": "知乎", "alexa": "", "url": "https://www.zhihu.com" },
  14. { "name": "Github", "alexa": "", "url": "https://www.github.com" }
  15. ]
  16. ins = mycol.insert_many(mylist) # 插入多条数据
  17. print(ins.inserted_ids)

  3、插入的数据可以指定id吗

  1. mylist = [
  2. { "_id": , "name": "RUNOOB", "cn_name": "菜鸟教程"},
  3. { "_id": , "name": "Google", "address": "Google 搜索"},
  4. { "_id": , "name": "Facebook", "address": "脸书"},
  5. { "_id": , "name": "Taobao", "address": "淘宝"},
  6. { "_id": , "name": "Zhihu", "address": "知乎"}
  7. ]
  8. ins = mycol.insert_many(mylist) # 插入多条数据
  9. print(ins.inserted_ids)
  10. 结果:[, , , , ]

四、删除数据

  1、删除一条数据

  1. #!/usr/bin/python3
  2. # -*- coding: utf- -*-
  3. import pymongo
  4.  
  5. dbcon = pymongo.MongoClient("mongodb://10.x.x.x:x") # 连接数据库
  6. mydb = dbcon["lion"] # 选择lion数据库
  7. mycol = mydb["kzg_col"] # 选择集合名
  8.  
  9. qu = {"name":"RUNOOB"}
  10. print(mycol.find().count()) # 总数18
  11. print(mycol.find(qu).count()) # 待删除数据2
  12. print(mycol.delete_one(qu)) # 删除1条
  13. print(mycol.find().count()) # 剩17条
  1. print(mycol.find().count()) # 总数17
    print(mycol.find_one_and_delete(qu)) # 返回删除的数据
    print(mycol.find().count()) # 剩16条

  2、一次删除多条数据

  1. #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    import pymongo
  2.  
  3. dbcon = pymongo.MongoClient("mongodb://10.x.x.x:27017") # 连接数据库
    mydb = dbcon["lion"] # 选择lion数据库
    mycol = mydb["kzg_col"] # 选择集合名
  4.  
  5. qu = {"name": {"$regex":"^F"}}
  6.  
  7. print(mycol.find().count()) # 总数16
    print(mycol.find(qu).count()) # 符合查询条件3条
    d = mycol.delete_many(qu) # 删除多条
    print(d.deleted_count) # 已删除3条
    d = mycol.delete_many({}) # 删除所有数据(集合存在, 数据为空)
    mycol.drop() # 删除集合
    print(mycol.find().count()) # 总数13条

五、修改数据

  1、修改一条数据

  1. #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    import pymongo
  2.  
  3. dbcon = pymongo.MongoClient("mongodb://10.20.6.36:27017") # 连接数据库
  1. mydb = dbcon["lion"] # 选择lion数据库
    mycol = mydb["kzg_col"] # 选择集合名
  2.  
  3. myq = {"name": "Taobao"} # 查询name=Taobao
    myq = {"name": {"$regex":"^F"}} # 查询 name以F开头
    myu = {"$set": {"alexa": 200}} # 更新 alexa=200
  4.  
  5. u = mycol.update_one(myq, myu) # 一次更新一条
    u = mycol.update_many(myq, myu) # 一次更新多条
    print(u.modified_count) # 修改数量
  1.  

六、查询

  1. #!/usr/bin/python3
  2. # -*- coding: utf- -*-
  3. import pymongo
  4.  
  5. dbcon = pymongo.MongoClient("mongodb://10.20.6.36:27017") # 连接数据库
  6. mydb = dbcon["lion"] # 选择lion数据库
  7. mycol = mydb["kzg_col"] # 选择集合名
  8.  
  9. mycol.find_one() # 查询集合中的第一条数据
  10. mycol.find() # 查询集合中的所有数据
  11. # 0不返回 1返回 ,_id 列不特指默认返回
  12. for x in mycol.find({}, {"_id": , "name": , "alexa": }):
  13. print(x)
  14. # 除了字段alexa不显示, 其它的都显示
  15. for x in mycol.find({}, {"alexa": }):
  16. print(x)
  17. # 只显示_id和alexa字段
  18. for x in mycol.find({}, {"alexa": }):
  19. print(x)
  20. # 指定查询条件
  21. mydoc = mycol.find({"name": "Taobao"})
  22. for d in mydoc:
  23. print(d)
  24. # 高级查询(name字段第一个字母大于H的数据)
  25. mydoc = mycol.find({"name":{"$gt":"H"}})
  26. # 正则表达式(查询字符串的字段)
  27. mydoc = mycol.find({"name":{"$regex":"^G"}})
  28. # 返回指定数量的条数
  29. res = mycol.find().limit()
  30. print(res.count()) # 总数5条
  31. for x in res: # 实际返回3条
  32. print(x)

七、排序

  1. #!/usr/bin/python3
  2. # -*- coding: utf- -*-
  3. import pymongo
  4.  
  5. dbcon = pymongo.MongoClient("mongodb://10.20.6.36:27017") # 连接数据库
  6. mydb = dbcon["lion"] # 选择lion数据库
  7. mycol = mydb["kzg_col"] # 选择集合名
  8.  
  9. # sort 第一个参数为排序字段, 第二个参数1为升序, - 为降序, 默认升序
  10. mydoc = mycol.find().sort("alexa", -)
  11. for d in mydoc:
  12. print(d)

pymongo的用法的更多相关文章

  1. Python3中PyMongo的用法

    MongoDB存储 在这里我们来看一下Python3下MongoDB的存储操作,在本节开始之前请确保你已经安装好了MongoDB并启动了其服务,另外安装好了Python的PyMongo库. 连接Mon ...

  2. MongoDB和pymongo自用手册

    [*] 本文出处:http://b1u3buf4.xyz/ [*] 本文作者:B1u3Buf4 [*] 本文授权:禁止转载 从自己的另一处博客移动过来.长期维护,不定期添加新内容. 前述和安装 mon ...

  3. 当用户管理系统遇上python和mongodb后……

    Overview: 环境 前言 效果图 mongdb安装 代码涉及知识点 关于windows的cmd下执行python文件显示中文乱码的问题 总结 0.环境 操作系统:Windows Python版本 ...

  4. Python爱好者社区历史文章列表(每周append更新一次)

    2月22日更新:   0.Python从零开始系列连载: Python从零开始系列连载(1)——安装环境 Python从零开始系列连载(2)——jupyter的常用操作 Python从零开始系列连载( ...

  5. mongoDB安装windows 64 bit

    mongoDB安装windows 64 bit   https://www.mongodb.org/downloads?_ga=1.207888916.746558625.1410501054 下载, ...

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

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

  7. pymongo常见的高级用法

    pymongo是python中基于mongodb数据库开发出来的,比mongoengine要高级一些,也要好用一些. 基本的增删查改就不说了 insert() delete() find() upda ...

  8. MondoDB介绍 Python与MongoDB用法,安装PyMongo

    http://blog.csdn.net/t_ells/article/details/50265889 MongoDB最新版本下载在官网的DownLoad菜单下:http://www.mongodb ...

  9. Python爬虫从入门到放弃(十六)之 Scrapy框架中Item Pipeline用法

    当Item 在Spider中被收集之后,就会被传递到Item Pipeline中进行处理 每个item pipeline组件是实现了简单的方法的python类,负责接收到item并通过它执行一些行为, ...

随机推荐

  1. cannot download, /home/azhukov/go is a GOROOT, not a GOPATH

    问题详情: go环境安装好后,运行go代码也没有问题 下载govendor包的时候提示: cannot download, /home/azhukov/go is a GOROOT, not a GO ...

  2. java——IObufferedReader文件输入输出流

    package com.jredu.ch02_lianxi; import java.io.BufferedReader;import java.io.BufferedWriter;import ja ...

  3. Spring Boot SSL [https]配置例子

    前言 本文主要介绍Spring Boot HTTPS相关配置,基于自签证书实现: 通过本例子,同样可以了解创建SSL数字证书的过程: 本文概述 Spring boot HTTPS 配置 server. ...

  4. resin4.0.25 安装配置 及结合eclipse开发

    resin4.0.25 安装配置 及结合eclipse开发 本文大部分内容是对官网的翻译,及自己配置后的一些体会. 一.  基于win  ,resin基本安装1,安装jdk1.6或更高版本2,配置环境 ...

  5. maven package,clean,install,compile命令

    1.Ideal中显示 2.各个阶段干嘛的? compile,编译命令,会在项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件 pack ...

  6. 深入学习sequoiadb巨杉数据库及python连接方式

    随着公司日益复杂与多变的需求,以及迅速扩展带来的海量数据业务,我们需要在提供高效服务的同时,降低其设备与程序维护成本.算了,不吹了,说白了就是需要从巨杉数据库中抓取大量的数据,但是我现在不会,所以需要 ...

  7. IntelliJ IDEA 2018.3 for Mac 注册码激活

    一.前往 jetbrains 官网下载 IDEA Ultimate版本,地址: https://www.jetbrains.com/idea/download/#section=mac 二.安装 ID ...

  8. 数据分析之numpy模块

    numpy(numerical python)是python语言的一个扩展程序库,支持大量的维度数组和矩阵运算,此外也针对数组提供大量的数学函数库. 一.创建数组 1 使用array()创建 impo ...

  9. Spring Boot 初始化运行特定方法

    Spring Boot提供了两种 “开机自启动” 的方式,ApplicationRunner和CommandLineRunner 这两种方式的目的是为了满足,在容器启动时like执行某些方法.我们可以 ...

  10. c# 生成验证码图片

    /// <summary> /// 生成验证码图片 /// </summary> /// <returns></returns> public byte ...