2014-02-24 5 views
0

나는 Node.js 프레임 워크와 MongoDB를 사용하고 있습니다.최근 작업 목록 mongodb에

보기의 ORM의 관점에서 오류가 없지만 일부 문서는 DB에 삽입하기되지 않습니다 이상한 행동이있다 : _idCollection.create()의 콜백 신선한 문서 err = null가 반환이. 해당 데이터베이스에서 _id으로 검색하려고하면 문서가 없습니다.

수동으로 db에 새 문서를 삽입하려고 시도했지만 성공했습니다.

db의 관점에서 이러한 작업을 추적 할 수있는 방법이 있습니까? 최근 요청과 결과를 나열하는 일부 명령은 무엇입니까?

답변

0

MongoDB를 내 추적 오류의 가장 주목할만한 방법은 --diaglog 옵션을 사용하는 것입니다 3의 아마 수준 http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--diaglog을, 그러나 1 당신을 위해 충분히있을 수 있습니다.

@Neil에서 언급했듯이,이 문제는 불행히도 2.6에서 더 이상 사용되지 않게됩니다. 프로파일 링에 사용되는 덮인 모음의 크기를 조정 가능성이

db.system.profile.find({op:{$in:['update', 'insert', 'remove']}}); 

과 :

유일한 방법은 현재 @Rauls 답변을 통해 MongoDB를가 수행하는 모든 작업을 작성한 다음과 같은 쿼리를 사용하는 것입니다 http://docs.mongodb.org/manual/tutorial/manage-the-database-profiler/#profiler-overhead은을 캡처 원하는 금액.

+0

system.profile 콜렉션의 사이즈 [사용되지 않는 (http://docs.mongodb.org/master/release-notes를 변경해야한다 /2.6/#diaglog-option-for-mongod-deprecated) 개발 버전 2.5.5부터이며 향후 버전에서 제거 될 예정입니다. 따라서 사용법을 권하는 좋은 선택이 아닙니다. –

+0

@NeilLunn 너무 좋지 않아 프로파일 링 수준보다 더 좋은 통계를 얻을 수 없습니다. – Sammaye

+0

프로파일 링이 선호되는 옵션이며 개선을 위해 예정됩니다. –

1

당신은 모든 작업에 대한 프로파일 링을 활성화 할 수 있습니다

db.setProfilingLevel(2) 

을 그런 다음의 일이 무엇인지 볼 수 system.profile 컬렉션을보십시오. system.profile은 다른 컬렉션으로 검색 할 수있는 출연 모음입니다. 프로파일 링은 소음이 될 수 있으며, 결국은 --diaglog 옵션을 고려

db.setProfilingLevel(0) 

db.system.profile.drop() 

db.createCollection("system.profile", { capped: true, size:4000000 }) 

db.setProfilingLevel(2) 
+1

현재 이것은 많은 노이즈를 생성 할 것이고 OP는 OP가 찾고있는 OP와 시스템의 제한된 콜렉션을 필터링하는 데 쿼리를 사용해야 할 것입니다. 프로필은 캡처의 길이에 따라 크기를 조정해야 할 수도 있습니다. – Sammaye

+0

@Sammaye : Noted, thanks –

관련 문제