python连接Mongo数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python连接Mongo数据库相关的知识,希望对你有一定的参考价值。

python连接Mongo数据库主要采用pymongo连接,一般情况分为两种连接方式,一种通过指定端口和地址直接连接,另一种通过uri的格式连接 

1.通过指定端口和地址连接Mongo

conn = MongoClient("47.93.194.180", 27017)
db = conn.coder   #连接到coder数据库
table = db.users  #连接到users集合
print(table.count()) #统计集合中的数据

2.通过URI连接

from pymongo import MongoClient

mango_uri = mongodb://%s:%s % ("47.93.194.180", 27017)
conn = MongoClient(mango_uri)  # 创建链接
db = conn.coder  # 连接coder数据库
table = db.users  # 选择users集合
print(table.count())  # 统计集合数据行数

注意:

  目前的连接模式属于Mongo数据库没有设置密码,一般Mongo均会设置密码,因为不设置密码容易被黑,如果设置密码时,通过uri连接需要对密码进行编码,如果不进行编码会提示“pymongo.errors.InvalidURI: ‘:‘ or ‘@‘ characters in a username or password must be escaped according to RFC 2396”;

技术分享

Mongo 密码是针对数据库而言,所以设置密码后我们需要连接数据库直接认证连接方式如下

from urllib import parse
from pymongo import MongoClient

passwd = "[email protected]"
passwd = parse.quote(passwd)  # 对密码先进行编码
mango_uri = mongodb://%s:%[email protected]%s:%s/%s % ("sa", passwd, "47.93.194.180", "27030", "mapdb")  # 链接时需要指定数据库
conn = MongoClient(mango_uri)  # 创建链接
db = conn.mapdb  # 连接coder数据库
table = db.bike  # 选择users集合
print(table.count())  # 统计集合数据行数

pymongo 连接数据库和连接集合也存在两种方法

1.连接数据库和集合,通过"."直接引用数据库和集合

db = conn.mapdb  # 连接coder数据库
table = db.bike  # 选择users集合

2.连接数据库和集合通过"[name]"引用数据库和集合

db = conn["mapdb"]  # 连接coder数据库
table = db["bike"]  # 选择users集合

注意:

  第一种连接方式无法将数据库和集合的名字设置为变量,但是后者可以设置;

 

以上是关于python连接Mongo数据库的主要内容,如果未能解决你的问题,请参考以下文章

将 mongoose 与预先存在的 mongo 集合连接

将 mongoose 与预先存在的 mongo 集合连接

python3 使用mongo数据库

python多进程与mongo

Python中操作mongo数据库

Python中操作mongo数据库