# 사용할 db 설정(없으면 만들어짐)
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# 넣을 데이터 생성
doc = {'name':'bobby','age':21}
# db 컬렉션(테이블)에 데이터 넣기
db.users.insert_one(doc)
주로 여러개의 값을 가져올 경우 list 형태로 가져온다.
그렇지 않으면 Object의 주소값을 가져온다.
# list(찾을 db의 컬렉션({조건},{안가져올 column:False}))
same_ages = list(db.users.find({'age':21},{'_id':False}))
print(same_ages)
----------result----------
[{'name': 'bobby', 'age': 21}, {'name': 'jane', 'age': 21}]
하나만 가져올 경우 find_one()
을 사용한다.
결과 값이 여러개인 경우에도 맨 위 결과 값 하나만을 가져온다.
user = db.users.find_one({'name':'bobby'})
print(user)
----------result----------
{'_id': ObjectId('6140050a810244d4ee68b0dd'), 'name': 'bobby', 'age': 21}
# update_one({찾을 조건},{'$set':{변경할 column:변경값}})
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
여러 개를 동시에 업데이트시키려면 update_many()
를 사용하면 되지만, 실무에선 거의 사용하지 않는다.
# delete_one({찾을 조건})
db.users.delete_one({'name':'bobby'})
여러 개를 동시에 삭제시키려면 delete_many()
를 사용하면 되지만, 실무에선 거의 사용하지 않는다.
데몬이란?
멀티태스킹 운영 체제에서 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램.
일반적으로 데몬이라는 표시를 위해 뒤에는 d가 붙는다.
이러한 속성 때문에 강의에서 git bash 프로그램을 꺼도(ubuntu 서버와 내 local의 연결이 끊어져도) 내 홈페이지가 여전히 실행 될 수 있는 것 같다.
추가적으로 조사하다가 nohup python app.ap &
명령어에서 &
는 nohup의 한 부분이 아니라 독립적인 명령어 라는 것을 알게되었다.
&는 프로세스를 실행할 때 백그라운드에서 동작하도록 만드는 명령어이다.
요즘은 & 명령어 만으로도 nohup과 같은 동작을 보이는 경우도 많다고 한다.
nohup으로 실행할 쉘 스크립트 파일의 현재 퍼미션이 755 이상의 상태여야 한다.
(이러한 이유 때문에 강의에서도 실행하기 전 chmod 755 [app.py](http://app.py)
를 해준 것 같다.)
ps -ef | grep 파일명(app.py)
로 백그라운드로 실행중인 프로그램을 찾는다.kill -9 PID번호
로 해당 프로세스를 종료한다.