2011-08-15 5 views
4

MongoDB를 백엔드로 Node.js에 웹 응용 프로그램을 개발하고 있습니다. 내가 알고 싶은 것은, 초기 콜렉션을 생성하고 이름에 대한 화이트리스트 또는 미리 정의 된 상수 목록과 같은 초기 데이터로 채우기 위해 일반적으로 허용되는 프로 시저가 존재할 경우 무엇입니까?MongoDB + NodeJS 웹 응용 프로그램의 초기 DB 구조/데이터

MongoDB는 데이터가 데이터베이스에 삽입되고 삽입되는 컬렉션이 이미 존재하지 않을 때 암시 적으로 컬렉션을 만듭니다. 이러한 암시 적 삽입이 콜렉션 생성을 처리하도록하는 것이 표준인가, 아니면 MongoDB를 사용하는 사람들이 기본 구조를 만들고 필요한 초기 데이터를 삽입하는 스크립트 설정을 가지고 있습니까? (예를 들어, MySQL을 사용할 때 처음부터 데이터베이스를 덤프하고 다시 작성/다시 채우기 위해 실행할 수있는 .sql 스크립트가 있어야합니다.)

도움 주셔서 감사합니다. 있다

MHY

답변

2

데이터가있는 경우 this post on SO이 (가) interresting 중일 수 있습니다. 그러나 Mongo는 JavaScript를 이해하기 때문에 데이터를 준비하는 스크립트를 쉽게 작성할 수 있습니다.

존재하지 않는 모든 것을 만드는 것은 Mongo의 본질입니다. 이렇게하면 유형에 제약을받지 않고 작업하기 전에 table x이 이미 있는지 확인해야하므로 매우 유연하고 민첩한 개발이 가능합니다. 콜렉션을 동적으로 작성해야하는 경우, 데이터베이스에서 가져 와서 (존재 여부에 관계없이) 작업하십시오.

특정 개체를 찾고있는 경우 null 개체로 작업 할 경우 코드에 영향을 줄 수 있으므로 해당 개체를 확인하십시오 (null이 아니거나 특정 키가있는 경우).

+0

고마워요. Mongo를 사용하는 것이 모든 이점이라고 생각합니다. – mhy

+1

Mongo는 필요에 따라 데이터베이스 및 콜렉션 생성을 수행하지만 Mongo 응용 프로그램에서 구식 "drop/create"스크립트의 역할은 여전히 ​​있습니다. 특히 라이브 시스템에서 색인의 중요성과 작성 비용을 고려할 때 createDatabase.js 스크립트를 작성하여 데이터가 유입되기 전에 색인을 얻는 것이 좋습니다. –

0

절대적으로 단지 설치 스크립트를 사용하는 컬렉션과 데이터베이스를 표시 할 이유가 없다. DB와 콜렉션 생성은 모두 느리게 수행됩니다.

MongoDB는 완전히 스키마가없는 문서 저장소이므로, 미리 특정 스키마를 설정할 방법이 없습니다.

mongo와 함께 제공된 데이터베이스 컨텐츠를 덤프하고 복원 할 수있는 도구가 있습니다.

이제 응용 프로그램에 초기 데이터가 필요하면 (예 : 구성 매개 변수 또는 허용 된 화이트리스트와 같이) 응용 프로그램 구성 요소에 필요에 따라 데이터를 설정하고 데이터 마이그레이션 경로를 제공하는 것이 가장 좋습니다.

+0

고맙습니다. 몽고가 처리하도록하겠습니다. 응용 프로그램 구성 요소가 자체 데이터를 설정한다는 것은 무엇을 의미하는지 모르겠지만 구성 파일 또는 두 개를 유지해야한다는 의미일까요? – mhy

관련 문제