Python-MongoDB连接搭建(二):Python连接MongoDB

作者:WenWu_Both
出处:http://blog.csdn.net/wenwu_both/article/
版权:本文版权归作者和CSDN博客共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文链接;否则必究法律责任

上篇文章我们介绍了MongoDB数据库的安装及相关配置,今天我们通过Python来操作MongoDB。

(1)MongoDB数据库用户管理

与其他数据库(Oracle,Mysql)等类似,MongoDB也提供了用户管理的功能,还记得上篇文章里的.conf文件吗?再贴一遍:

# 设置数据目录的路径  
dbpath = D:\MongoDB\data\db  
# 设置日志信息的文件路径  
logpath = D:\MongoDB\log\MongoDB.log  
# 打开日志输出操作  
logappend = true  
# 用户管理  
noauth = true  
# 设置端口号  
port = 27001

其中,用户管理:“noauth=true”即表示不启用用户管理,下面我们介绍如何启用用户管理并创建用户。

1、切换到需要管理的数据上,例:

use transdata # 此时切换到数据库transdata

2、创建用户,例:

db.createUser({
    "user":"hello",
    "pwd":"python",
    "roles":[{"role":"readWrite","db":"transdata"}]
}   
)

Python-MongoDB连接搭建(二):Python连接MongoDB_第1张图片
出现上图即表明此时我们创建了hello账户,密码为Python。
3、修改启动文件
将启动文件MongoDB.conf中用户管理项改为

auth = true # 此时启动了用户管理

4、重新连接数据库
完成上述步骤,我们利用“mongo –port=27001”命令仍然可以连接上数据库,但是执行不了具体操作,会报错,如下图:
Python-MongoDB连接搭建(二):Python连接MongoDB_第2张图片
出现上图则表明用户管理启动成功,此时我们需要利用以下命令连接数据库:

mongo localhost:27001/transdata -u hello -p python

Python-MongoDB连接搭建(二):Python连接MongoDB_第3张图片

此时,我们发现我们成功连接到数据库,且可以对数据库进行相关操作。

注:修改用户密码的命令为db.changeUserPassword(“数据库名”,”新密码”),但请先将.conf的用户管理模式关掉,密码修改成功后再改回来。

(2)Python连接MongoDB

Python与MongoDB的爱恨情仇都在pymongo包里,具体包的引用我就不就介绍了。
PS:推荐用Anaconda来集成Python开发环境,超好用,可参见Anaconda安装及使用教程
Python连接数据库有两种方式:MongoClient及Connection,从这两个类的继承来看,connection是继承了MongoClient的,建议使用MongoClient而不是使用Connection。(也就是说,MongoClient可以使用方法Connection都可以使用)。
1、无用户验证

# 导入相应包
from pymongo import MongoClient
# 建立数据库连接
client = MongoClient('localhost',port)
# 连接目标数据库
db = client.dbName
# 连接集合
col = client.CollectionName

2、用户验证连接

# 导入相应包
from pymongo import MongoClient
# 建立和数据库系统的连接,创建Connection时,指定host及port参数
client = MongoClient('localhost', port,dbName)
# 连接目标数据库
db = client.dbName
# 数据库用户验证
db.authenticate("account", "password")
#连接集合
col = client.CollectionName
# 打印集合第1条记录
print col.find_one()

我们执行用户验证连接,成功后如下图:

这里写图片描述

自此,我们就通过Python连接上MongoDB的目标数据库了,是不是敲开心,哈哈。。。

(3)pymongo的相关命令
连接上数据库就可以对数据库中的数据进行操作了,cmd模式下,数据库的相关操作我们就不赘述了,可参见MongoDB 教程,同时推荐个特别好的视频教程,对我帮助很大,哈哈。。。
本节主要认识几个常用的pymongo命令:
1、插入数据

db.col.insert_one() # 插入单个文档
db.col.insert_many() # 插入多个文档

2、查询数据

a.全部查询

cursor = db.col.find() # 注意返回的是查询结果的游标,这是产生文档的迭代对象
for doc in cursor:
    print doc

b.条件查询

cursor = db.col.find({field1:value1,field2:value2,...}) # 返回条件游标
for doc in cursor:
    print doc # 迭代游标打印文档

c.嵌入式文档中查询

cursor = db.col.find({field1.field2...field3...:value})

3、结果排序
通过追加sort()方法进行查询,其中:
pymongo.ASCENDING 表示升序排序
pymongo.DESCENDING
如果要通过多个键星星排序,可以传递键的列表和以及对应的排序类型的列表。举例来说,如下操作将返回restaurants集合中所有的文档,并且先通过borough字段进行升序排序,然后在每个borough内,通过”address.zipcode”字段进行升序排序。

import pymongo
cursor = db.restaurants.find().sort([
    ("borough", pymongo.ASCENDING),
    ("address.zipcode", pymongo.ASCENDING)
])

4、更新数据
update_one()update_many()

db.col.update_one() # 更新单个文档
db.col.update_many() # 更新多个文档

5、删除文档

db.col.delete_one({}) # 删除单个文档
db.col.delete_many({}) # 删除所有文档

还有数据聚合及数据索引等操作函数,这里不再赘述,具体可参见博客:
PyMongo官方文档翻译

好的,本篇就介绍到这了,希望能给大家带来帮助,你的支持将是我最大的动力!

你可能感兴趣的:(Python)