文档章节

Mongodb python驱动教程

youthflies
 youthflies
发布于 2014/04/30 18:41
字数 728
阅读 182
收藏 7

Mongodb python驱动教程

安装

使用python驱动mongodb需要下载、安装PyMongo包

  • Windows用户,点击这里下载。
  • 使用pip安装
    在linux平台使用pip命令安装:
    pip install pymongo
    指定版本:
    pip install pymongo==2.6.3 升级:
    `pip install --upgrade pymongo
  • 使用easy_install安装
    easy_install pymongo 升级:
    easy_install -U pymongo

使用

安装完毕后,就可以在python shell或者python ide中进行试验,如果安装pymongo成功,那么下面的命令应该可以在python shell中运行:
>>> import pymongo

通过MongoClient连接mongo

    #连接locahost上的mongodb,端口是默认端口,27017    from pymongo import MongoClient    client = MongoClient

也可以手动指定host和port:

    client = MongoClient("localhost", 27017)    #或者    client = MongoClient("mongodb://localhost:27017/")

获取数据库实例

一个mongodb的实例中,可以有很多独立数据库。我们可以通过下面的方式获取一个数据库的实例:

    db = client.mydatabase

如果上面的方法不起作用,试一下下面的方法:

    db = client['mydatabase']

获取数据集

所谓数据集就是存储再mongodb中的一堆文档,这里可以简单的理解成关系数据库中的表(table),下面的方法获取一个数据集:

    collection = db.mycollection    #或者    collection = db[mycollection]

需要注意的是,不管是获取数据库、还是数据集实例,mongodb其实没有进行任何操作,只有当真正的文档insert进去的时候,才会真正创建数据库和数据集。

Documents

Mongodb中的数据是以json风格的文档存在的。在PyMongo中,我们使用dictionaries代表documents。下面的一段文档(dictionary),可以看作是一篇博文的简介:

        import datatime    post = {    "auther" : "Mike",    "text" : "My First blog post",    "tags" : ["mongodb", "python", "pymongo"],    "date" : datetime.datetime.utcnow()    }

Document可以包含python语句,如上面的datetime.datetime,执行时,会自动进行转化。

插入Document

使用insert()方法进行插入:

    posts = db.posts    post_id = posts.insert(post)    print post_id

当一篇Document被插入到mongodb中,如果document中没有指定"_id",mongodb会自动为该document添加唯一的"_id"。这个"_id"在该数据集中是惟一的。insert()方法返回值就是这个id,更多关于id的信息,点击documentation on _id

插入完成后,我们可以通过下面的语句列出数据库中的数据集:

    db.collection_names()

结果如下: [u'system.indexs', u'posts'] system.indexs 这个数据集是mongodb自己创建的内部数据集。

使用find_one()方法获取指定的Document

monbodb中find_one()方法,是最基本的查找方法。该方法返回符合条件的一篇document(如果没有符合条件的,返回None)。当数据集中只有一篇符合条件的文档,或者我们只想看第一篇文档的时候,find_one()就有很有用了。

    posts.find_one()

返回结果:

    {u'date': datetime.datetime(...), u'text': u'My first blog post!', u'_id': ObjectId('...'), u'author': u'Mike', u'tags': [u'mongodb', u'python', u'pymongo']}

通过ObjectId检索

我们也可以通过_id来进行检索,在这里_id是ObjectId:

继续阅读→

© 著作权归作者所有

youthflies
粉丝 45
博文 247
码字总数 139731
作品 0
海淀
QA/测试工程师
私信 提问
Build RESTful API in Go and MongoDB

GitHub:https://github.com/happy-python/gorest_mongo 在本教程中,我将说明如何在 Go 和 MongoDB 中构建自己的 RESTful API。 API 规范 安装依赖 toml:解析配置文件 mux:路由映射 mgo:...

与蟒唯舞
2018/09/29
0
0
利用python测试mongodb副本集数据同步延迟

本文主要介绍python如何连接mongodb副本集及读写分离配置,mongodb副本集数据同步延迟测试。 一、python连接mongodb副本集 1.连接副本集 在新版的驱动中直接使用MongoClient连接 如下: from...

hnr1017
2018/07/03
0
0
djongo:Django和MongoDB连接器

在Django项目中使用MongoDB作为后端数据库,且不改变Django的ORM框架。实现Django用户管理程序对MongoDB数据库中文件的增加和修改。 用法 1.pip install djongo 2.在Django项目下的setting.p...

p柯西
2018/06/20
36
0
大数据分析挖掘学习方向?数据分析师的就业前景怎么样?

加米谷数据分析挖掘课程明细,从理论到云端实操环境到项目实战,手把手教您从0掌握数据分析与挖掘技术,带您走进数据时代。 第一阶段(python基础) python入门:1、Python版本特性介绍2、P...

加米谷大数据
2018/04/17
25
0
地铁译:Spark for python developers ---Spark的数据戏法

聚焦在 Twitter 上关于Apache Spark的数据, 这些是准备用于机器学习和流式处理应用的数据。 重点是如何通过分布式网络交换代码和数据,获得 串行化, 持久化 , 调度和缓存的实战经验 。 认真使...

abel_cao
01/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
昨天
4
0
hash slot(虚拟桶)

在分布式集群中,如何保证相同请求落到相同的机器上,并且后面的集群机器可以尽可能的均分请求,并且当扩容或down机的情况下能对原有集群影响最小。 round robin算法:是把数据mod后直接映射...

李朝强
昨天
4
0
Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
昨天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部