2017-12-20 16 views
0

나는 mongodb 데이터베이스에 거대한 데이터를 가지고 있으며 최소값, 최대 값, 평균 등과 같은 데이터 분포를 파악하고 싶습니다. 내 문제는 데이터 형식을 정수 또는 부동 소수점 대신 문자열입니다 그래서 평균 데이터를 정렬 할 수 없습니다. 거기에 파이프 라인 내에서 문자열에서 float 데이터 형식을 변환하는 방법은 무엇입니까? 예를 들어, 문자열 날짜를 날짜 유형으로 변환하려면 $dateFromString(aggregation)문자열 번호를 mongodb와 python에서 float로 변환하십시오.

또는이 문제를 해결하는 다른 방법이 있습니까?

+0

이러한 기능은 파이프 라인에 제공되지 않습니다. 자세한 내용은 [여기] (https://jira.mongodb.org/browse/SERVER-11400)을 참조하십시오. 집계를 실행하기 전에 해당 유형을 변환하고 예상되는 유형으로 db에 저장해야합니다. – Veeram

+0

감사합니다. 안타깝게도 데이터 유형을 먼저 변경해야 할 수도 있습니다. – dede

답변

0

MongoDB는 Javascript, iirc를 기반으로하므로 'parseFloat'함수를 사용하여 다른 데이터 유형을 float로 변환 할 수 있습니다. 필요한 경우를 대비하여 정수로 변환하려고하는 'parseInt'도 있습니다.

+0

감사합니다. 하지만 파이썬을 연구하고 있습니다. 그것은 가능한가? 최소값 또는 최대 값을 찾고 싶습니다. 그래서 모든 데이터를 찾지 않고 하나씩 분석하고 싶습니다. 데이터가 커지면서 시간이 더 많이 걸릴 것이기 때문입니다. 그러나 가능한 방법이 없다면 시도 할 것입니다. – dede

+0

파이썬에서 뭔가를 float로 변환하는 동등한 함수는 'float'입니다. 이 경우 모든 것을 조사하지 않았다면 가장 작은 값이나 가장 큰 값을 찾지 못했기 때문에 모든 데이터를 구문 분석하여 최소값과 최대 값을 찾아야합니다. [$ group] (https://docs.mongodb.com/manual/reference/operator/aggregation/group/#pipe._S_group) 연산자를 사용하여 MongoDB 쿼리에서 min/max/avg를 찾을 수도 있습니다 그래서 당신은 파이썬에서 그 일을 할 필요가 없습니다. –