2016-09-28 3 views
0

파이썬 스크립트가 호출 될 때마다 업데이트되는 새로운 빈 컬렉션을 만들 수 있기를 원합니다.파이썬 스크립트로 MongoDB 컬렉션을 업데이트하십시오.

python update.py --build-type xyz --status xyz 

:

from pymongo import MongoClient 

db = MongoClient('my.ip.add.ress', 27017)['xxxx'] #connect to client 
db.createCollection("colName")     #create empty collection 

내가 그것을 같은 내가 (팀 시티에서 특히)를 호출 스크립트를 사용하여 업데이트 할 수 있도록하려면 : 나는 다음과 같이 그 단순히 pymongo 사용할 수있는 컬렉션을 만들 알고 스크립트가 원하는 특정 컬렉션을 업데이트 할 수 있도록이 작업을 수행하는 방법은 무엇입니까?

답변

0

어떤 컬렉션을 수정하고 싶은지 알고 있다고 생각합니다. 이렇게하면 컬렉션에 명령의 다른 인수로 컬렉션을 추가 할 수 있습니다.

그런 다음 sys.argv 또는 명령 줄 인수를 구문 분석하도록 특별히 작성된 라이브러리를 사용하여 명령 줄 인수를 가져올 수 있습니다. Python 3 표준 라이브러리에는 argpase (https://docs.python.org/3/library/argparse.html)가 포함되어 있습니다. 그러나 클릭 (http://click.pocoo.org/5/)을 사용하는 것이 좋습니다. 당신이 pymongo을 가지고 있는지 확인

python cli.py --db=test --col=test --build_type=staging --sta 
tus=finished 

설치를 클릭 :

저장 cli.py로 다음은

import click 
from pymongo import MongoClient 


MONGOHOST = 'localhost' 
MONGOPORT = 27017 


@click.command() 
@click.option('--db', help='Database', required=True) 
@click.option('--col', help='Collection', required=True) 
@click.option('--build_type', help='Build Type', required=True) 
@click.option('--status', help='Status', required=True) 
def update(db, col, build_type, status): 
    mongocol = MongoClient(MONGOHOST, MONGOPORT)[db][col] 
    mongocol.insert_one({'build_type': build_type, 'status': status}) 
    # You could also do: mongocol.find_and_modify() or whatever... 

if __name__ == '__main__': 
    update() 

다음과 같은 명령을 실행

pip install pymongo click 
+0

감사 남자. 운동하자. – user3504250

관련 문제