-
카테고리
-
세부 분야
데이터베이스
-
해결 여부
미해결
특정 날짜 이후의 document 들만 csv 파일로 뽑아 오려면 어떻게 해야 하나요?
20.03.30 17:25 작성 조회수 105
0
안녕하세요,
저는 회사에서 데이터베이스안에
oid 별로 사용자의 데이터가 기록 됩니다.
그런데 timestamp 기준으로 특정 날짜 이후의 것을
뽑아 오려면 어떻게 해야 하나요?
조회는 find() 로 사용하면 되는 것을 아는 데 그 다음을 모르겠습니다.
감사합니다!
답변을 작성해보세요.
0
잔재미코딩 DaveLee
지식공유자2020.04.01
안녕하세요.
해당 데이터베이스가 몽고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")}}) #
감사합니다.
답변 1