오늘 ONEUL
오늘의 개발
오늘 ONEUL
전체 방문자
오늘
어제
  • 오늘의 개발 (248)
    • 📝 TIL (121)
    • 💡 Projects (6)
      • 드로잉 게임 [눈치 코치 캐치!] (4)
      • 익명고민상담소 [대나무숲] (2)
    • 🌎 Web (47)
      • Spring (3)
      • Java (14)
      • JavaScript (16)
      • CSS (10)
      • HTML (4)
    • 📚 Database (7)
    • 👾 Trouble Shooting (3)
    • 📊 Algorithm&SQL (39)
    • 😺 Git (1)
    • 📖 Books (7)
      • 자바 객체 지향의 원리와 이해 (7)
    • 📁 ETC (2)
    • 되돌아보기 (15)

블로그 메뉴

  • 😺 Github
  • 🍀 NAVER Blog

인기 글

최근 댓글

최근 글

태그

  • 항해99
  • Algorithm
  • 자바
  • 자바스크립트
  • JavaScript
  • Til
  • Java
  • MySQL
  • 알고리즘
  • 프로그래머스

티스토리

hELLO · Designed By 정상우.
오늘 ONEUL

오늘의 개발

[TIL] Python 문자열 제거, pymongo 역정렬, MongoDB에 id 부여
📝 TIL

[TIL] Python 문자열 제거, pymongo 역정렬, MongoDB에 id 부여

2022. 11. 4. 22:10

✍ Today I Learned

 

2022.10.29 - [TIL] 웹의 동작 개념, CSS 모바일, DOMContentLoaded

  • 웹개발 종합반 1주차 ~ 2주차 강의에 이어 3주차 ~ 4주차 강의를 듣고 정리한 내용이다.
  • 사용 경험이 적은 언어(Python)와 데이터베이스(MongoDB)였지만 내가 알고 있는 것들과 비교해보는 재미가 있었다!

 


 

특정 문자열 대체, 제거 replace()

string.replace(oldvalue, newvalue, count)
  • 차례대로 찾을 값, 바꿀 값, 바꿀 횟수(옵션)를 입력하면 해당 string에서 특정 문자열을 대체한다.

 

 

문자열 및 공백 제거 strip()

string.strip(characters)
  • 인자로 전달받은 문자를 String의 왼쪽과 오른쪽에서 제거한다.
  • 인자를 전달하지 않으면 공백을 제거한다.
  • 인자로 문자 1개를 전달하면 그 문자와 동일하지 않은 문자가 나올 때까지 제거한다.
  • 인자로 여러 문자를 전달하면 그 문자들과 동일한 것들을 모두 제거한다.

 

 

MongoDB Atlas란?

  • MongoDB Atlas는 MongoDB를 설계한 사람들이 만든 모든 것을 관리하는 클라우드 데이터베이스이다.
  • 클라우드 3사(AWS, Azure, GCP)에서 다 사용 가능하다.
  • 유저가 몰리거나, DB를 백업해야 하거나, 모니터링 하기가 아주 용이하기 때문에 사용한다.

 

 

pymongo 역정렬 sort()

db.col.find().sort('UserName', 1) # 오름차순
db.col.find().sort('UserName', -1) # 내림차순
  • 매개변수로 key를 지정하여 데이터를 정렬한다.
  • 두 번째 매개변수를 생략하거나 1은 오름차순, -1은 내림차순이다.
  • 데이터를 최신순으로 불러오고 싶을 때는 id key를 기준으로 역정렬을 한다.

 

 

MongoDB에 id 부여하기

시퀀스가 없다구요?

  • 버킷리스트를 구현 중, 하나하나의 완료 여부를 업데이트하려고 보니 각 데이터에 id 값이 필요했다.
  • MongoDB는 MySQL의 Auto-increment 같은 시퀀스를 따로 지원하지 않는다.
  • 따라서 DB 데이터를 list로 불러와 list 요소의 개수를 구하고 + 1 한 값을 id로 넣어준다.
count = list(db.bucket.find({},{'_id':False}))
num = len(count) + 1

 

list의 요소 개수 구하기 len()

len( "abc" )
print(len) # 3

len( [ 11, 22, 33, 44, 55, 66 ] )
print(len) # 6
  • 문자열에서는 문자열의 길이를 반환한다.
  • list에서는 요소의 개수를 반환한다.

 

문자열을 숫자로 변환하기 int()

num_str = '10'
print(num_str) # 10
print(type(num_str)) # <class 'str'>

num = int(num_str)
print(num) # 10
print(type(num)) # <class 'int'>
  • 인자로 전달된 문자열을 Integer로 변환한다.
  • 서버로 숫자를 넘겨주어도 JSON은 무조건 String으로 전달되기 때문에 클라이언트에서 보내준 id값을 서버에서 사용하려면 int로 변환해주어야 한다.

num의 데이터타입은 int, bucket의 데이터타입은 String

@app.route("/bucket/done", methods=["POST"])
def bucket_done():
    num_receive = request.form["num_give"]
    db.bucket.update_one({'num': int(num_receive)}, {'$set': {'done': 1}})
    return jsonify({'msg': '버킷 완료!'})

 

 

 

저작자표시 비영리 변경금지 (새창열림)

'📝 TIL' 카테고리의 다른 글

[TIL] Java 연산자의 종류, 우선순위, 타입 변환  (2) 2022.11.08
[TIL] Java 개발 환경 구축, 변수와 타입  (0) 2022.11.07
[TIL] 웹의 동작 개념, CSS 모바일, DOMContentLoaded  (0) 2022.10.29
[TIL] 알고리즘 구간 합  (1) 2022.10.01
[TIL] 알고리즘 배열과 리스트(Java)  (0) 2022.09.29
    오늘 ONEUL
    오늘 ONEUL
    Backend Engineer ㅣ 어제보다 나은 오늘, 재밌는 건 오늘부터!

    티스토리툴바