一、安装与更新

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

二、创建数据库、集合

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

  

三、插入数据

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

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

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

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

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

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

四、删除数据

  1、删除一条数据

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

  2、一次删除多条数据

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import pymongo dbcon = pymongo.MongoClient("mongodb://10.x.x.x:27017") # 连接数据库
mydb = dbcon["lion"] # 选择lion数据库
mycol = mydb["kzg_col"] # 选择集合名 qu = {"name": {"$regex":"^F"}} 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、修改一条数据

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

六、查询

#!/usr/bin/python3
# -*- coding: utf- -*-
import pymongo dbcon = pymongo.MongoClient("mongodb://10.20.6.36:27017") # 连接数据库
mydb = dbcon["lion"] # 选择lion数据库
mycol = mydb["kzg_col"] # 选择集合名 mycol.find_one() # 查询集合中的第一条数据
mycol.find() # 查询集合中的所有数据
# 0不返回 1返回 ,_id 列不特指默认返回
for x in mycol.find({}, {"_id": , "name": , "alexa": }):
print(x)
# 除了字段alexa不显示, 其它的都显示
for x in mycol.find({}, {"alexa": }):
print(x)
# 只显示_id和alexa字段
for x in mycol.find({}, {"alexa": }):
print(x)
# 指定查询条件
mydoc = mycol.find({"name": "Taobao"})
for d in mydoc:
print(d)
# 高级查询(name字段第一个字母大于H的数据)
mydoc = mycol.find({"name":{"$gt":"H"}})
# 正则表达式(查询字符串的字段)
mydoc = mycol.find({"name":{"$regex":"^G"}})
# 返回指定数量的条数
res = mycol.find().limit()
print(res.count()) # 总数5条
for x in res: # 实际返回3条
print(x)

七、排序

#!/usr/bin/python3
# -*- coding: utf- -*-
import pymongo dbcon = pymongo.MongoClient("mongodb://10.20.6.36:27017") # 连接数据库
mydb = dbcon["lion"] # 选择lion数据库
mycol = mydb["kzg_col"] # 选择集合名 # sort 第一个参数为排序字段, 第二个参数1为升序, - 为降序, 默认升序
mydoc = mycol.find().sort("alexa", -)
for d in mydoc:
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. 转载 用Python实现设计模式——工厂模式

    转载自 SegmentFault作者 夏秋, https://segmentfault.com/a/1190000013053013 非常感谢这位作者的深入浅出的讲解. 前言 工厂模式,顾名思义就是我 ...

  2. 转载 Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  3. 【PaddlePaddle】自然语言处理:句词预测

    前言 预测词汇的相关性算是自然语言中的HelloWolrd.本文主要根据百度PaddlePaddle示例word2vec,对句子中下一个单词的预测.该示例使用4个词语来预测下一个词. 1. 数据集以及 ...

  4. python selenium 对浏览器标签页进行关闭和切换

    1.关闭浏览器全部标签页 driver.quit() 2.关闭当前标签页(从标签页A打开新的标签页B,关闭标签页A) driver.close() 3.关闭当前标签页(从标签页A打开新的标签页B,关闭 ...

  5. 2018.4.23-ml笔记(线性回归、梯度下降)

    线性回归:找到最合适的一条线来最好的拟合我们的数据点. hθ(x) = θixi=θTx    θ被称之为权重参数    θ0为拟合参数 对每个样本yi=θTxi + εi    误差ε是独立并且具有 ...

  6. mysql使其支持插入中文数据的办法

    1.找到安装的文件夹C:\Program Files (x86)\MySQL\MySQL Server 5.0 2.修改文件夹下的my.ini文件: 找到画黄线的这一字段 将后面改为utf8 这个过程 ...

  7. Hystrix参数配置

    1.Hystrix参数配置文档  2.Hystrix参数配置示例 import org.springframework.beans.factory.annotation.Autowired; impo ...

  8. Tensorflow学习笔记(2):tf.nn.dropout 与 tf.layers.dropout

    A quick glance through tensorflow/python/layers/core.py and tensorflow/python/ops/nn_ops.pyreveals t ...

  9. (转)MySQL触发器trigger示例详解

    一.什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合.触发器的这种特性可以协助应用在数据库端确保数据的完整性. 举个例子,比如你现在有两个表[用户表]和[ ...

  10. vi常用命令总结

    1. 打开文件 > vi 文件 //该模式是命令模式 2. 尾行模式操作 > :q //该模式是“尾行模式” > :w //保存已经修改的文档 > :wq //保存并退出 &g ...