강의

멘토링

커뮤니티

Inflearn Community Q&A

gjtnwjd400543's profile image
gjtnwjd400543

asked

[Renewal] First-time MongoDB and NoSQL (Big Data) Database Bootcamp [From Beginner to Application] (Updated)

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

Written on

·

208

0

안녕하세요,

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

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

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

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

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

감사합니다!

DBMS/RDBMSpythonmongodb데이터 엔지니어링

Answer 1

0

funcoding님의 프로필 이미지
funcoding
Instructor

안녕하세요.

해당 데이터베이스가 몽고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")}}) # 

감사합니다.

gjtnwjd400543's profile image
gjtnwjd400543

asked

Ask a question