Mongodb python驱动教程

本文介绍了如何在Python环境中安装并使用MongoDB的Python驱动PyMongo,包括安装方法、连接MongoDB、获取数据库实例、数据集获取及文档插入等基础操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:

继续阅读→

转载于:https://my.oschina.net/u/147181/blog/228958

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值