mongo

文章目录
  1. 1. 服务器
    1. 1.1. 服务器启用mongo集群
  2. 2. mongo客户端使用
    1. 2.1. 登录/验证/切换数据库
  3. 3. 客户端模块调用
    1. 3.1. pymongo/motor调用mongo集群
    2. 3.2. pymongo调用基础功能
  4. 4. 参考资料

###

服务器

服务器启用mongo集群

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 进入mongo客户端
mongo
# 以下操作是在mongo客户端命令行内:
# 创建集群,集群名字=“rs0”
rs.initiate(
{
_id: "rs0",
members: [
{
_id: 0,
host: "mongo-r0:27017"
},
{
_id: 1,
host: "mongo-r1:27017"
},
{
_id: 2,
host: "mongo-r2:27017"
}
]
}
)
# 查看集群状态
rs.conf()
rs.status()

mongo客户端使用

登录/验证/切换数据库

1
2
3
4
5
# 进入mongo客户端(默认链接27017)
mongo

# 指定端口
mongo --port 1234

客户端模块调用

pymongo/motor调用mongo集群

当 mongo 是集群时,客户端连接时需要设置好要连接的所有 mongo 节点。

1
2
3
4
5
import pymongo
# uri里的“rs0”是集群名称,前面是每个节点的IP和端口
uri = 'mongodb://mongo-r0:27017,mongo-r1:27017,mongo-r2:27017/?replicaSet=rs0'
conn = pymongo.MongoClient()
[i for i in conn.list_databases()]

注释:pymongo和motor连接时使用的uri字符串可以是相同的,因为motor实际是调用pymongo实现的。

集群–官方文档

pymongo调用基础功能

1
2
3
4
5
6
7
8
9
10
11
import pymongo
# 链接到 数据库
db = pymongo.MongoClient('mongodb://{$ip}:{$port}')[$db_name]
# 链接到 数据集合
db_col = db[$col_name]

# 数据集合的总数量
total = db_col.count_documents()

# find sort()排序 limit()结果数量限制
resp = db_col.find({}, keys).sort([(key1, 1), (key2, -1)]).limit(10)

参考资料