日期:2014-05-16  浏览次数:20440 次

Python搭配MongoDB使用方法

?

Python搭配MongoDB使用方法

原文地址:http://serholiu.com/python-mongodb

?

?

MongoDB

?

?

下面就谈谈Python操作MongoDB的一些基本用法,先介绍一下MongoDB,这是现在风头正劲的NoSQL数据库,没有关系数据库那种表之类的概念,就像Python中的字典一样,一个键对应一个值,然后这些键值组成一个文档,然后文档组成一个集合,集合再组成一个数据库,类型十分丰富,使用Python操作MongoDB需要安装MongoDB的Python驱动,安装完成后,就可以和我一起开始了。

启动数据库(具体方法不是本文重点),连接数据库。

1     >>> from pymongo import Connection #导入模块
2     >>> con = Connection()
3     >>> db = con.test #连接test数据库
4     >>> posts = db.post #连接test中的post集合,相当于MySQL中的表

?

很好的一点就是,数据库不需要先建立,在连接后,如果进行插入数据操作,系统可以自己创建,我们假设一个post集合,里面是一些博客文章组成的文档。下面先插入几篇文章做实验。

?

 1     >>> import datetime
 2     >>> post1 = {"title":"I Love Python",
 3          "slug":"i-love-python",
 4          "author":"SErHo",
 5          "content":"I Love Python....",
 6          "tags":["Love","Python"],
 7          "time":datetime.datetime.now()}
 8  
 9     >>> post2 = {"title":"Python and MongoDB",
10          "slug":"python-mongodb",
11          "author":"SErHo",
12          "content":"Python and MongoDB....",
13          "tags":["Python","MongoDB"],
14          "time":datetime.datetime.now()}
15  
16     >>> post3 = {"title":"SErHo Blog",
17          "slug":"serho-blog",
18          "author":"Akio",
19          "content":"SErHo Blog is OK....",
20          "tags":["SErHo","Blog"],
21          "time":datetime.datetime.now()}
22  
23     >>> posts.insert(post1)
24     >>> posts.insert(post2)
25     >>> posts.insert(post3)

?

增加数据就是这样的简单,不需要事先定义文档的机构,每个文档的结构也可以不一样,上面我举的例子是一样的,这可以根据实际需求来设置,我这个是为了好讲解下面的。插入过后,肯定最先的是查询,下面查询出post集合里面的所有文档:

1     >>> posts = posts.find()
2     >>> count = posts.count()
3     >>> for post in posts:
4             print post

数据库使用游标来返回find的结果,游标上有多种方法,比如上面的count(),就可以得到查询到的文档总数。这个例子将返回”count=3″和上面的那三篇文档。更多查询方法在后面将讲解,这些方法更加强大。

插入过后可能发现需要修改,于是下面讲解一些修改的方法。如果需要大幅度的修改,什么是大幅度的修改呢,比如把post1的title,slug,author等都修改了,我的理解就是大于一个键的修改就叫大幅修改。修改一个东西,你得先找到他,所以查询方法就很重要了,不幸的是,这个准备后面才将。我们先随便查找一个来修改吧。

 1     >>> post = posts.find_one({"slug":"python-mongodb"})
 2     >&g