美文网首页
python链接mongo 单击与分片集群链接

python链接mongo 单击与分片集群链接

作者: 火鸡不肥 | 来源:发表于2019-03-07 18:28 被阅读0次

    一: 单机链接

    client = MongoClient('mongodb://localhost:27017/')
    
    replication set 链接
    from pymongo import MongoReplicaSetClient
    conn = MongoReplicaSetClient("10.0.0.200:28017,10.0.0.200:28018,10.0.0.200:28019", replicaset='my_repl')
    
    print (conn)
    print (conn.primary)
    print (conn.seeds)
    print (conn.secondaries)
    print (conn.read_preference)
    print (conn.server_info())
    

    二: 分片集群

    conn = pymongo.Connection('192.168.1.1', 27017) 
    db = conn['test'] #假定名为test的db已经存在 
    db_admin = conn['admin'] #command的执行必须通过名为admin的db才能进行 
    col_data = db["data"] 
    for i in range(1, 50): 
    
    col_data.insert({'_id':i, 'value':(i*200)}) 
    #插入测试数据,必须在分片之前保证shard key的存在,本例中为_id 
    db_admin.command('enablesharding', 'test') 
    #确认目标db的sharding功能开启(这行代码一个数据库只执行一次有效,如果已经#设置,则会抛出异常)
    
    db_admin.command('shardcollection', 'test.data', key = {'_id':1}) 
    #指定目标collection和对应的shard key(这行一个表执行一次,如果出现多表,表名不同的情况下,应该每张表都执行一次)
    
    conn.close() 
    
    如何查看已经分片成功:
    在linux中进入mongo命令界面,
    use test
    db.test.data.stats()
    
    会打印出分片信息。
    
    并且shard key可以指定多个,同建立复合索引类似:
    db_admin.command('shardcollection', 'test.data', key = {'_id':1, 'a':1, 'b':1})
    

    相关文章

      网友评论

          本文标题:python链接mongo 单击与分片集群链接

          本文链接:https://www.haomeiwen.com/subject/yyyhpqtx.html