2013-06-20 2 views
4

NodeJs (native-driver)를 사용하여 MongoDB에 대량 삽입을하고있었습니다. 데이터에 날짜 필드가 있습니다. 날짜 필드를 String 대신 Date으로 저장 하시겠습니까?MongoDb 날짜 형식

날짜가 dd/mm/yyyy입니다. 현재 시나리오에서는 데이터를 mm/dd/yyyy 형식으로 변환 한 대량 데이터를 반복하여 결과를 얻은 다음 새 날짜를 만들고 저장합니다.

데이터 양이 늘어남에 따라 반복에 너무 많은 시간이 걸리기 때문에; 그것을 할 다른 방법이 있습니까?

+0

삽입하는 방법에 대한 코드를 공유 할 수 있습니까? 나는 당신이 데이트를받는 방법을 잘 모르겠습니다. –

+1

DB에 삽입하기 전에 String을 Date로 변환해야합니다. 문서가 마지막으로 대량 삽입 될 때까지 반복되는 경우 컬렉션의 업데이트 된 부분 만 업데이트하는 것을 고려할 수 있습니다. 따라서 변경/추가 된 항목 만 업데이트 할 수 있습니다. – moka

답변

1

임포트 중에 mongodb (mongoimport)에 'dd/mm/yyyy'문자열을 $ date 유형으로 변환하도록 지시 할 방법이 없습니다.

일괄 처리를 한 후에 유형을 변경할 수 있습니다. 이 코드는 mongob 쉘에서 실행할 수 있습니다 :

db.your-collection-name.find().forEach(function(element){ 

     var parts = element.date.split("/"); 

     element.date = new Date(parts[2], parts[1], parts[0]); 

     db.your-collection-name.save(element); 

    });