首页 > 技术文章 > python连接Mongo数据库

mengyu 2017-10-24 19:48 原文

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 = "Expressin@0618"
passwd = parse.quote(passwd)  # 对密码先进行编码
mango_uri = 'mongodb://%s:%s@%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集合

注意:

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

 

推荐阅读