ubuntu docker 에서 mongodb container 를 설치하고 python에서 pymongo로 db를 조금 만져보려고 한다.

 

Ubuntu => Docker

 

$ docker run -d --name mongodb -p 27017:27017 mongo

위 명령어를 실행하면

-d 백그라운드에서 동작하는

--name mongodb mongodb 라는 이름을 가지고

-p 27017:27017  컨테이너 내부외부를 27017 포트로 통신하는 (mongodb의 기본 포트이다) 

mongo container 를 실행한다.

 

만약 mongo image 가 없으면 자동으로 다운(pull) 받는다.

 

 

$ docker ps

위 명령어로 컨테이너가 제대로 실행됐나 확인해본다

mongo 이미지로 mongodb 라는 이름을 가진 컨테이너가 실행돼있다.

docker ps

 

 

웹브라우저에서 localhost:27017 로 접속해보자. 

localhost:27017

이렇게 뜨면 제대로 실행중이다.

 

 

 

 

Python 

이제 python 에서 mongodb 를 사용해보자.

 

$ pip install pymongo

mongodb 사용을 위해 pip로 pymongo 를 설치하고 코드를 작성하자

 

#db.py

from pymongo import MongoClient

client = MongoClient('mongodb://localhost:27017/')


db = client.newDB 			# db 를 하나 만들고
userCollection = db.user	# db 에서 collection 을 만든다.

# insert_one() 으로 db 를 추가
userCollection.insert_one({
    'name' : 'mik_a',
    'age'  : '100',
})

# find() 로 collection 에 저장된 데이터를 불러와서 출력한다
for i in userCollection.find() :
    print(i)

# collection 의 데이터를 전부 삭제한다.
userCollection.delete_many({})

 

출력

 

NoSQL DB인 mongodb 를 python 으로 간단하게 사용해봤다.

db 에 insert 할때 자동으로 주어지는 _id 로 remove 하려고 한다.

 

from bson.objectid import ObjectId

find = myCollection.find_one({'name':'sample'})
id = find['_id']

myCollection.remove({'_id': ObjectId(id)})

코드 테스트는 안해봤는데 이런식으로 하면 된다.

ObjectId import 하고, remove({'_id': ObjectId(id)}) 하면 끝

+ Recent posts