python中对mongo数据库的连接与操作

  1. 之前将过了mongo数据的控制台的简单命令,今天说一下,在python中我们如何操作mongo数据库。
  2. 代码展示:

之前将过了mongo数据的控制台的简单命令,今天说一下,在python中我们如何操作mongo数据库。

Mongo中创建一个集合可以使用db.createCollection('表名'),在Mongo中创建的是集合,在Mysql中创建的叫做表,因为在mongo中你需要存储的数据是不需要约束的,你想存入图片或者其他类型的数据都是可以直接存储的。

代码展示:

在实际的查询中会遇到一些问题,那就是在python中如果要查询某一个字段的话,直接输出是不行的,因为他返回的是一个生成器。比如:

import pymongo
client = pymongo.MongoClient(host='localhost',port=27017)
#这个是连接到mongo的数据库连接操作,port是端口号,mongo数据库默认的端口号是27017.
db = client.test
#test是我们mongo里面的一个数据库
collection = db.student
#获取test数据库里面student的集合
results = collection.find({'name':{'$regex':'^J.*'}})
#其中name后面使用的是正则表达式,意思是匹配name字段中所有以j开头的
#这是我们想要直接使用print(results)是得不到结果的,换句话说会报错,错误的大概意思就是,这是个迭代器,不能够直接输出。
#如果只想返回一个结果,可以使用
print(results.next())
#聪明的小伙伴已经想到了,如果我想要全部获取写个循环不就可以了
for i in range(len(results)):
    print(results.next())
#如果小伙伴们想要把所有的数据给提取出来,就多加个全局的列表去存储,比如
results_list = []
for i in range(len(results)):
    results_list.append(results.next())
print(results_list)
#当然了,熟悉python的小伙伴,应该知道对于这种类似于迭代器,列表,元祖,字典等类型的,是可以使用另外一种循环遍历的,比如:
results_list = []
for result in results:
    result_list.append(result)

其实当我们已经能够拿到表之后,操作数据就比较方便了,上面我使用了正则去获取数据,其实这都是mongo给我们写好的获取方式,比如说我要获取以J结尾的,那么又是另外一种表达式,这个还是看小伙伴们的具体需求,需要什么样的操作可以自行百度查看,菜鸟教程可以多看看,里面总结了很多基础的操作。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1990858822@qq.com

文章标题:python中对mongo数据库的连接与操作

本文作者:XIAOK Z

发布时间:2019-09-02, 09:15:51

最后更新:2019-09-02, 09:50:44

原始链接:http://yoursite.com/2019/09/02/python中对mongo数据库的连接与操作/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏