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 ...
随机推荐
- 为什么AI的翻译水平还远不能和人类相比?
为什么AI的翻译水平还远不能和人类相比? https://mp.weixin.qq.com/s/0koIt-qu9IOVxNhbFcZr1Q 作者 | SHARON ZHOU 译者 | 王天宇 编辑 ...
- WebLogic使用总结
一. WebLogic安装 WebLogic使用总结(一)——WebLogic安装 一.下载WebLogic 到Oracle官网http://www.oracle.com/ 下载WebLogic(根据 ...
- iOS----------常见经典错误
最近使用cocoapods集成友盟 发现几个经典错误 1.clang: error: linker command failed with exit code 1 (use -v to see in ...
- iOS----------计算一段代码执行时间
CFAbsoluteTime start = CFAbsoluteTimeGetCurrent(); //在这写入要计算时间的代码 // do something CFAbsoluteTime end ...
- 转一篇OpenSSL的例子:简单的TLS服务器
原名:Simple TLS Server 原址:https://wiki.openssl.org/index.php/Simple_TLS_Server Windows下就不要从源码编译OpenSSL ...
- android Q build 变化
一 概述 android Q build变化整体上越来越严格,语法上之前能够使用的Q上将不能使用. 二 主要变化 2.1 'USER' 弃用 ‘USER’后面的值会被设置成‘nobody',andr ...
- C#窗体打包步骤
1.在项目下选择InstallerProjects的Setup Project建立打包工具. 2.找到项目bin目录Release下的文件全部复制下来. 3.复制完之后全部粘贴到Application ...
- SQLServer之创建分区视图
分区视图定义 分区视图是通过对成员表使用 UNION ALL 所定义的视图,这些成员表的结构相同,但作为多个表分别存储在同一个 SQL Server实例中,或存储在称为联合数据库服务器的自主 SQL ...
- Win10 - MySQL 10061 错误
Win10 - MySQL 10061 错误 报错内容为: Can't connect to MySQL server on localhost (10061) 参考 : MySQL问题记录--Can ...
- 用人类社会工程学对C语言中的一些基本概念的剖析与理解
最近在学C语言程序设计时总是遇到一些概念理解上的不清晰与混乱的地方,在一次偶然间想到了以前看过的一部电影<我是谁,没有一个系统是安全的>,里面的主角用社会工程学的想法结合黑客知识化险为夷, ...