• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

특정 날짜 이후의 document 들만 csv 파일로 뽑아 오려면 어떻게 해야 하나요?

20.03.30 17:25 작성 조회수 105

0

안녕하세요,

저는 회사에서 데이터베이스안에 

oid  별로 사용자의 데이터가 기록 됩니다.

그런데 timestamp  기준으로 특정 날짜 이후의 것을 

뽑아 오려면 어떻게 해야 하나요?

조회는  find() 로 사용하면 되는 것을 아는 데 그 다음을 모르겠습니다.

감사합니다!

답변 1

답변을 작성해보세요.

0

안녕하세요.

해당 데이터베이스가 몽고db를 썼다면, 또 몽고db의 컬렉션의 각 필드들이 어떻게 정의되어 있냐에 따라 다르지만, datetime 라이브러리를 사용해서, 해당 필드의 날짜 포멧과 동일하게 날짜를 만드신 후, 특정 날짜 보다 더 큰 데이터를 다음 예와 같이 뽑아올 수 있습니다. 이때 해당 필드의 데이터타입이 무엇인지, 또 날짜를 어떻게 표현하는지를 정확하게 확인해서, 이에 맞추어 gte / lt 와 같은 강의에서 설명드린 조건 문법으로 find() 명령을 써서 뽑아올 수 있습니다.

예를 들어, 다음 예는 해당 컬렉션에 creationDate가 2019-10-01 이런식으로 문자열 타입으로 날짜가 들어가 있을 때, datetime으로 날짜를 만들어서, 강의에서 설명드린대로 $gte 는 greater than or equal 이상이라는 뜻이죠, creationDate가 특정 날짜 이상, 그리고 특정 날짜 미만 ( $lt less than) 의 데이터만 뽑아오라는 명령입니다. 

import datetime

items = collection.find({'creationDate': {'$gte': datetime.datetime.strptime('2019-03-01', "%Y-%m-%d"), '$lt': datetime.datetime.strptime('2019-12-31', "%Y-%m-%d")}}) # 

감사합니다.