mysql集群和mongodb集群_在python中连接MongoDB集群(MongoDB Cluster)

建立了一个mongo集群,有3个节点,分别为:

mongo-1

mongo-2

mongo-3

mongo集群没有提供类似mysql集群和redis集群中的虚拟IP。在使用的时候需要客户端连接时指定mongo集群的所有节点。

python连接MongoDB的驱动为pymongo, 基于pymongo 有封装的mongoengine,以及基于mongoengine 的 flask_mongoengie.

具体写法如下:

pymongo#!/usr/bin/env python# coding=utf-8from pymongo import MongoClient# single mongo#c = MongoClient(host="mongo-1", port=28010) # okay#c = MongoClient('mongodb://admin:123456@mongo-1:28010,mongo-2:28010/?replicaSet=rsname')# mongo clusterc = MongoClient('mongodb://admin:123456@mongo-1:28010,mongo-2:28010,mongo-3:28010')#c = MongoClient('mongodb://admin:123456@mongo-1:28010,mongo-2:28010,mongo-3:28010/?readPreference=secondary')#c = MongoClient('mongodb://admin:123456@mongo-3:28010/?readPreference=secondary')print c.nodesprint c.database_names()

mongoenginefrom mongoengine import connectfrom mongoengine import Documentfrom mongoengine import StringField

connect('mpc', host='mongodb://mpc:mpc@mongo-1:28010,mongo-2:28010,mongo-3:28010/mpc')class User(Document):

title = StringField(required=True, max_length=200)print User.objects.count()

flask_mongoenginefrom flask_mongoengine import MongoEnginefrom flask import Flask

app = Flask(__name__)#app.config.from_pyfile('the-config.cfg')#app.config['MONGODB_SETTINGS'] = {#        'db': 'mpc',#        'username': 'mpc',#        'password': 'mpc',#        'host': 'mongo-2',#        'port': 28010 #        }"""

# NOTE: connect_settings invalid.

app.config['MONGODB_SETTINGS'] = [

{

'db': 'mpc',

'username': 'mpc',

'password': 'mpc',

'host': 'mongo-1',

'port': 28010

},

{

'db': 'mpc',

'username': 'mpc',

'password': 'mpc',

'host': 'mongo-2',

'port': 28010

}

]

"""app.config['MONGODB_SETTINGS'] = {        'host': 'mongodb://mpc:mpc@mongo-1:28010,mongo-2:28010,mongo-3:2801/mpc',

}

db = MongoEngine(app)class User(db.Document):

email = db.StringField(required=True)

first_name = db.StringField(max_length=50)

last_name = db.StringField(max_length=50)print 'filter', User.objects.filter()

扩展阅读:

作者:jiaxiaolei

链接:https://www.jianshu.com/p/a0a23443146e來源:简书

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值