• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

pymongo update 관련 (정규식)

20.07.08 13:09 작성 조회수 90

0

안녕하세요. 강사님. 유익한 강의 감사드립니다.

여러가지로 테스트를 해보다가 막히는 부분이 생겼는데요.

만약 배우들 이름이 

"이름" : "이정재(5편)"

"이름" : "정우성(6편)"

"이름" : "하정우"

"이름" :"송강호(4편)"

이런식으로 저장되어 있다고 가정할때 괄호안의 내용을 삭제해보려고 했는데요.

예시 : 이정재(5편) -> 이정재

actor.update_many({"이름":{"$regex":"\(\w+\)"}},{"$set":{"이름": "{    }" }})

괄호가 있는 문서를 찾아서 이름을 정규식으로 변경하려고 하였습니다.

{"$set":{"이름": re.sub("\(\w+\)", "", A) }})

여기서 값에 접근하는 방법 (해당 문서 이름의 밸류값)을 모르겠습니다. 실제로 이게 가능한지도 모르겠네요.

for문을 이용해서는 수정할 수 있는데, for문을 쓰지 않고도 가능한 방법이 있을까요?

답변 1

답변을 작성해보세요.

0

안녕하세요. 우선 말씀하신 접근 방법도 있겠지만,

간단하게 저장할 때, () 쪽을 지운 후에 저장하시면 더 깔끔하지 않을까 해요.

만약 해당 데이터가 들어있는 변수가 data 라고 한다면,

data.split('(')[0]  이렇게만 하셔도 ( 로 시작하는 괄호 이후의 데이터는 빼고 그 앞에 있는 데이터만 가져올 수 있으니까요.

이렇게 일종의 데이터 전처리를 한 다음에, 해당 데이터를 저장하시면 좋을 것 같습니다.

(굳이 일단 저장한 후에, 해당 데이터를 다 검색해서 불러들여서 재조작을 하는 것은 부득이한 경우가 아니라면, 불필요해보여요)

감사합니다.