python之pymongo
引入
在这里我们来看一下Python3下MongoDB的存储操作,在本节开始之前请确保你已经安装好了MongoDB并启动了其服务,另外安装好了Python的PyMongo库。
MongoDB 数据库安装与介绍可以查看之前的 MongoDB 教程。
安装
pip3 install pymongo
使用pymongo
一,连接MongoClient
使用pymongo的第一步首先是连接Client来使用服务:
from pymongo import MongoClient
Client = MongoClient()
二,获取数据库(database)
在MongoDB中一个实例能够支持多个独立的数据库,你可以用点取属性的方式来获取数据库,或者通过字典的方式获取:
db = Client.test_database
db = Client['test_database']
(注:'test'可以换成你想要用的名字,比如"python_database")
三,获取Collection
Collection是存储在MongoDB中的一组文件,同获取database一样,你可以用点取属性的方式或者字典的方法获取:
collection = db.test_collection
collection = db['test_collection']
四,存储数据
在MongoDB中,数据是以BSON的类型存储的。见下面的post:
import datetime
post = ['type':'BSON', 'date':datetime.datetime.utcnow()]
了解完MongoDB的数据格式后,你可以通过以下的方式插入数据(其中.inserted_id将返回ObjectId对象):
document1 = {'x':1}
document2 = {'x':2}
posts = db.posts #你也可以不这样做,每次通过db.posts调用
post_1 = posts.insert_one(document1).inserted_id
post_2 = posts.insert_one(document2).inserted_id
每个插入的数据对应一个ObjectId,可直接查看:
>>>post_1
ObjectId(...)
>>>post_2
ObjectId(...)
你还可以用insert_many()插入多个文档:
new_document = [{'x':3}, {'x':4}]
result = posts.insert_many(new_document)
>>>result.inserted_ids
[ObjectId(...),ObjectId(...)]
五,从MongoDB中调用数据
>>>posts.find_one()
['x':'']
但用find_one()的方法只能获取一个数据,如果数据库中存在多个数据时,它返回的是第一个的值。你也可以通过ObjectId来请求数据,效果和上面是一样的。如果你想打印出全部数据,可以通过迭代的方式获取:
>>>for data in posts.find():
>>> data
>>>
{u'x':1,
u'x':2,
u'x':3,
u'x':4}
你也可以加入限制性因素来获取特定的数据:
>>>for post in posts.find({'x':1}):
>>> post
>>>
{u'x':1}
查找条件中也可以用正则匹配来匹配calue。
六,更新数据
在pymongo中可以用update_one()来更新数据:
>>>posts.update_one({'x':4},{'$set':{'x':3}})
其中传入的第一个参数是你想要更新的数据,第二个是你想要更新的最新数据。其中$set部分是必要元素,如果没有会报出错误。除了$set外还有很多其它的比如$inc,对应着不同的功能,在此先不赘述。
上面只是更新匹配到的第一个数据,同样地,也可以用update_many()一次更新多个值。
七,删除数据
同上,可以用delete_one()和delete_many()方法来删除数据,括号中是筛选条件:
>>>posts.delete_one({'x':3})
>>>posts.delete_one({'x':2})
八,计数
如果想知道collection中有多少文档,可以用.count()请求来获取符合条件的文档。
>>>posts.count()
4
>>>posts.find({'x':1})
1
完!!!
python之pymongo的更多相关文章
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- 7.mongo python 库 pymongo的安装
1.Python 中如果想要和 MongoDB 进行交互就需要借助于 PyMongo 库,在CMD中使用命令即可[注意此处是pip3,pip无法安装]: pip3 install pymongo 2. ...
- Python 使用pymongo操作mongodb库
Python 使用pymongo操作mongodb库 2016-12-31 21:55 1115人阅读 评论(0) 收藏 举报 分类: - - - Python(10) 版权声明:本文为博主原创文 ...
- python中级---->pymongo存储json数据
这里面我们介绍一下python中操作mangodb的第三方库pymongo的使用,以及简单的使用requests库作爬虫.人情冷暖正如花开花谢,不如将这种现象,想成一种必然的季节. pymongo的安 ...
- 【Python】pymongo使用
官方文档:http://api.mongodb.com/python/current/index.html MongoReplicaSetClient:http://api.mongodb.com/p ...
- python使用pymongo访问MongoDB的基本操作,以及CSV文件导出
1. 环境. Python:3.6.1 Python IDE:pycharm 系统:win7 2. 简单示例 import pymongo # mongodb服务的地址和端口号mongo_url = ...
- MongoDB的Python客户端PyMongo(转)
原文:https://serholiu.com/python-mongodb 这几天在学习Python Web开发,于是做准备做一个博客来练练手,当然,只是练手的,博客界有WordPress这样的好玩 ...
- python操作pymongo
import pymongo from bson import ObjectId mongo_client = pymongo.MongoClient(host="127.0.0.1&quo ...
- 【python】pymongo查找某一时间段的数据
python中实现: 下面代码就是查找2016-09-26 00:00:00 ~ 2016-09-27 00:00:00 时间段的数据 from datetime import datetimefor ...
随机推荐
- PHP-MySQL基本操作
PHP-MySQL基本操作 <?php // 1.防止页面中文乱码 header("content-type:text/html;charset=utf-8"); // 链接 ...
- springboot 使用 redis
springboot 自己是实现了一套 redis 缓存框架, 地址: https://www.cnblogs.com/huanggy/p/9473822.html, 通过配置即可轻松愉快地实现 某些 ...
- IDEA修改Git账户和密码
找到c盘中git目录的.gitconfig文件可以直接修改name和邮箱
- 手持式停车收费管理系统全套案例,支持车牌识别,包含了android版app,微信小程序查询,响应式管理后台,云端大数据存储
先展示几个app效果图片吧,使用起来非常方便,关联了机器的快捷键操作,操作速度提高了不少,摄像头车牌自动识别,车牌识别无网络情况下离线也可以使用 再来一张后台截图,停车场信息完整显示,今日数据实时 ...
- 从0开始的Python学习010return语句&DocStrings
return语句 return语句用来从一个函数中 返回 即跳出函数.当然也可以从函数中返回一个值. #return 语句从一个函数返回 即跳出函数.我们也可选从函数返回一个值 def maximum ...
- 【转载】【时序约束学习笔记1】Vivado入门与提高--第12讲 时序分析中的基本概念和术语
时序分析中的基本概念和术语 Basic concept and Terminology of Timing Analysis 原文标题及网址: [时序约束学习笔记1]Vivado入门与提高--第12讲 ...
- 复制命令(COPY)
COPY 命令: // 描述: 将一个或多个文件从一个位置复制到另一个位置. ### 注意:如果想复制文件夹,请使用 XCOPY . // 语法: copy [/a] [/b] [/d] [/v] ...
- LeetCode算法题-Keyboard Row(Java实现)
这是悦乐书的第245次更新,第258篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第112题(顺位题号是500).给定一个单词列表,返回可以在美国键盘的一行上使用字母表键 ...
- js字符串String提取方法比较
JavaScript: Slice, Substring, or Substr的选择! 在JavaScript中,字符串主要通过以下String方法之一提取: // slice // syntax: ...
- Java实现Sunday百万级数据量的字符串快速匹配算法
背景 在平时的项目中,几乎都会用到比较两个字符串时候相等的问题,通常是用==或者equals()进行,这是在数据相对比较少的情况下是没问题的,当数据库中的数据达到几十万甚至是上百万千万的数 ...