2013-11-09 1 views
0

몽구스 Model.create 메소드에 문제가 있습니다. 나는 문서의 결코매우 큰 문서 배열에서 Model.create가 작동하지 않습니다

저장된 전체에 셸과 쿼리를 몽고로 전환 할 때 (모든 문서를 저장하려면 충분한) 15 분 후

Model.create(arrayOfThousandDocs, function(err){}); 

전화

는 난 단지 뭔가를 찾아 약 700-800 (저장되는 문서는 Model.create가 호출 될 때마다 다릅니다.)

mongoose 또는 mongo는 오류를 반환하지 않습니다.

누구도 동일한 버그에 직면 했습니까? 해결 방법을 알려주십시오.

+0

잘 작동합니다. Mongoose 디버그 로깅이 호출 중에'mongoose.set ('debug', true);를 코드에 추가하여 무슨 일이 일어나고 있는지 확인하십시오. – JohnnyHK

답변

0

, Model.create foreach는 방법을 사용하고, 만약 내가 잘못 경우 비동기 모드 프로그래밍 .. 제발 올바른 그 nodejs에 적합하지 않기 때문에이 될 수있다 ..

과 전망을 제시 ..

여기에 소스가 있습니다 : http://mongoosejs.com/docs/api.html#model_Model.create

+0

비동기 컨텍스트에서 forEach를 사용하는 것이 본질적으로 잘못되었습니다. 여기에있는 문제는 'Model.create'가 수천 개의 문서를 대량 저장하는 데 적합하지 않다는 것입니다. 아마도 최대 100 개의 워드 프로세서를 사용하여 데이터 세트를 분할하거나 MongoDB를 사용하는 대신 직접 MongoDB 드라이버를 사용해야합니다. – robertklep

+0

왜 100으로 제한해야합니까? 그리고 그런데 100으로, 나는 먼고 껍질에서 체크 된 80-90 레코드를 얻는다. – codeofnode

+1

'Model.create()'를 사용하여 1500 개의 간단한 문서를 저장하면 나에게 잘 돌아가고, 모두 DB에서 끝납니다. 그래서 분명히 당신이 저장하고있는 문서의 셋업이나 유형과 관련이 있습니다. – robertklep

관련 문제