风雨十年,感恩同行

政府项目开发过程中Python连接访问MongoDB的简易方法

[复制链接]
发表于 2018-7-13 06:35:13 | 显示全部楼层 |阅读模式

MongoDB作为了一个数据库产品软件,除了服务器Server端进程(mongod)外,还提供了比较丰富的访问连接接口。我们最常用的就是两个类型,一个是原生mongo shell,另一个就是应用程序语言访问接口,在阜阳市宗教管理局项目中运用最为简洁。

1、从Mongo Shell应用程序访问接口

Mongo Shell是MongoDB官方提供的数据库访问接口程序,类似于Oracle的SQLplus和Mysql的mysql程序。应该说,Mongo shell对于MongoDB的连接、访问和功能操作是最好的。所有与MongoDB相关的管理、开发和数据访问职能,都可以通过Mongo Shell进行实现。

另一类就是应用程序访问接口,也可以理解为编程语言接口。同其他所有数据库相同,针对每个开发语言,MongoDB都有专门的访问驱动Driver程序(或者称为Module)进行支持。但是,由于不同语言在语法、语义和程序组织方式上的差异,使用程序访问接口的时候,和标准Mongo Shell是有一些差别。这就是为什么在MongoDB官方文档中,对于每个操作都提供多种程序语言版本的原因。

目前,MongoDB提供的语言驱动,包括Mongo Shell(原生也需要支持包)、Python、Java、Node.js、PHP、C#、Perl、Ruby和Scala。本篇主要介绍Python的访问方式,记录下来,留待需要的朋友待查。

2Python驱动安装

Python是目前比较流行的程序设计语言,特别是在人工智能AI和大数据分析处理上,市场空间是比较大的。MongoDB是比较流行的NOSQL数据库解决方案,两者结合的场景非常多。

对于Python而言,组织程序是以Module的方式进行。要在本地进行开发,需要本地在Python标准库基础上,添加对于MongoDB的支持。目前,比较常用的Mongodb包为pymongo。

如果是Windows环境下,如果已经安装好Python开发环境JDK,只需要调用esay_install程序就可以自动完成下载。

C:\Users\admin>easy_install pymongo

Searching for pymongo

Reading https://pypi.python.org/simple/pymongo/

Best match: pymongo 3.4.0

Downloading https://pypi.python.org/packages ... 16e227445979403f14c

4fcfc5960f7c220e8ad0370197fe87a/pymongo-3.4.0-py3.5-win-amd64.egg#md5=0fa1f3d995

42f032fc8940d8d53d7559

Processing pymongo-3.4.0-py3.5-win-amd64.egg

creating c:\program files\python35\lib\site-packages\pymongo-3.4.0-py3.5-win-amd

64.egg

Extracting pymongo-3.4.0-py3.5-win-amd64.egg to c:\program files\python35\lib\si

te-packages

Adding pymongo 3.4.0 to easy-install.pth file

Installed c:\program files\python35\lib\site-packages\pymongo-3.4.0-py3.5-win-am

d64.egg

Processing dependencies for pymongo

Finished processing dependencies for pymongo

在国内象阜阳市民航局项目中就下载时间可能比较长,而且经常会有Timeout的情况出现。多测试几次,或者直接到Python官网上下载安装包就能解决。下载之后的pymongo包,被自动放在标准Python库里面。注意:这个时候即使是使用Eclipse插件进行开发,也会自动的感应到最新的库变化,即时生效。

3、简单开发实例

下面进行一个简单地实例。当前目标数据库test上,包括pyinsert这个集合collection。

> show collections

blog

pyinsert

xl

> db.pyinsert.find().count();

0

下面是插入的python记录脚本

from pymongo import MongoClient –导入包模块

from bson.objectid import ObjectId

connect = MongoClient('172.16.19.143',27017)

db = connect.test –对应数据库

operList = [{"name":"Ttest", "age":10},{"name":"Mark", "age":12},

            {"name":"Lucy", "age":10},{"name":"Tom", "age":32}]

res = db.pyinsert.insert_many(operList)  --批量插入

print(res)

注意:每个语言落实MongoDB语法的时候,有一些差别,具体需要参考官方解释。上面的实例中,介绍了连接语句、组织Document Array和批量插入。插入后,结果如下:

> db.pyinsert.find();

{ "_id" : ObjectId("5972d32dc3e2cc1d108511b7"), "age" : 10, "name" : "Ttest" }

{ "_id" : ObjectId("5972d32dc3e2cc1d108511b8"), "age" : 12, "name" : "Mark" }

{ "_id" : ObjectId("5972d32dc3e2cc1d108511b9"), "age" : 10, "name" : "Lucy" }

{ "_id" : ObjectId("5972d32dc3e2cc1d108511ba"), "age" : 32, "name" : "Tom" }

检索数据脚本:

from pymongo import MongoClient

from bson.objectid import ObjectId

connect = MongoClient('172.16.19.143',27017)

db = connect.test

for data in db.pyinsert.find():

print(data)

操作结果:

{'_id': ObjectId('5972d32dc3e2cc1d108511b7'), 'name': 'Ttest', 'age': 10}

{'_id': ObjectId('5972d32dc3e2cc1d108511b8'), 'name': 'Mark', 'age': 12}

{'_id': ObjectId('5972d32dc3e2cc1d108511b9'), 'name': 'Lucy', 'age': 10}

{'_id': ObjectId('5972d32dc3e2cc1d108511ba'), 'name': 'Tom', 'age': 32}

4、结论

本篇针对python语言使用MongoDB的接口,进行了简单介绍。六安市经济技术开发区管理委员会项目和更多的语法和使用,建议参考MongoDB官方文档。



您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

客服咨询

QQ:619920289

服务时间 9:00-22:00

金蝶用友易助管家婆深度服务
 
QQ在线咨询
售前咨询热线
619920289
售后服务热线
243998158
快速回复 返回顶部 返回列表