2014-12-15 3 views
-1

MongoDB 컬렉션에서 'status'에 대한 새 필드를 추가해야합니다. 튜토리얼이 너무 많지만 필드 형식을 지적하지 않습니다. varchar (5)가 필요합니다.mongodb를 사용하여 테이블을 변경하는 방법

내 스 니펫은 내 요구 사항에 적합합니까?

db.users.update(
    { }, 
    { $set: { Status: []} }, 
    { multi: true } 
) 
+2

지금까지의 대답으로는 충분히 명확하지 않습니다. IMHO : ** MongoDB 컬렉션에는 필드가 없으며, 개별 * 문서에는 필드가 있습니다. '콜렉션'은 '테이블'에 대한 또 다른 단어가 아닙니다. 완전히 다른 접근 방식입니다. '열'이 없습니다. 단일 컬렉션의 문서는 동일한 구조를 가질 필요가 없으며 완전히 다르게 보일 수 있습니다. 진화하는 스키마가 걱정된다면 필요한 곳에 새로운 필드를 추가 할 수 있지만 코드가 누락 된 필드에 대처할 수 있는지 확인하십시오. – mnemosyn

+0

여기에 퍼져있는 지혜를 들어라. 그리고 대답을 시도한 사람들보다 더 많은 지식을 가진 사람들이 주로. MongoDB == "Schemaless"== "모든 레코드가 같은 것은 아닙니다". 애플리케이션 로직에서 어떤 것을 끌어낼 수 있지만 MongoDB를 처음 사용하는 이유는 무엇인지 고려해야합니다. 다른 애들은 모두 멋지다고 했거든? 나쁜 생각. 솔루션에 "적합"하기 때문에 NoSQL 솔루션을 사용하십시오. 다른 이유는 없습니다. –

답변

1

귀하의 명령은 집합 users에있는 모든 문서에 Status 필드를 빈 배열로 추가합니다. mongodb에는 varchar (문자열 만)가 없으며 문자를 5 자까지만 제한 할 수 없습니다. 제한은 일종의 응용 프로그램 논리에 의해 수행되어야합니다.

지원되는 유형의 mongodb는 here입니다.

3

MongoDB는 테이블을 사용하지 않습니다. 컬렉션을 사용하십시오. 고전적인 E/R 정신을 새로운 개념 (컬렉션)으로 변경해야하기 때문에이 개념을 더 깊이 연구해야 할 수도 있습니다.

mongoose를 사용하고 JSON으로 모델을 정의하는 것이 좋습니다. 이것에 대한 튜토리얼과 문서가 많이 있습니다.

편집 :

당신은 높은 수준의 언어를 사용하는 경우 시도 이것을 사용하기 전에 내가 언급 한 바와 같이

. http://mongoosejs.com/ 아주 간단하고 완벽하게 작동합니다.

mongo 셸에서 직접 명령을 사용하는 경우이 링크를 읽으십시오. http://docs.mongodb.org/manual/reference/mongo-shell/

이 컬렉션을 역동적이고 게으른 방식으로 변환하려면 어떻게해야할까요?

+1

그래, 새 필드를 추가하기 위해 컬렉션을 변경하는 방법. 달성 할 수있는 방법이 있습니까? 도와주세요. –