2017-01-19 10 views
0

에 새로운 필드를 추가 몽구스 내가 스키마가 컬렉션 (Node.js를)

var userSchema = new Schema({ 
    name: String, 
    username: { type: String, required: true, unique: true }, 
    password: { type: String, required: true }, 
    admin: Boolean, 
    created_at: Date, 
    updated_at: Date 
}); 

이의 내가이 스키마를 사용하여 100 Users 만든 가정하자. 이 필드를 가지고 나는 모든 새 Users 필요

var userSchema = new Schema({ 
    name: String, 
    username: { type: String, required: true, unique: true }, 
    password: { type: String, required: true }, 
    admin: Boolean, 
    created_at: Date, 
    friends: [Schema.Types.ObjectId], //the new addition 
    updated_at: Date 
}); 

:

는 지금은 스키마를 변경하고 싶습니다. 또한 100 개의 기존 Users 모두가이 필드를 갖기를 바랍니다. 어떻게해야합니까?

답변

1

클라이언트 응용 프로그램에서 쿼리 인터페이스를 사용하거나 터미널 당신은 할 수 :

db.users.updateMany({ 
    $set: { "friends" : [] } 
}); 

다음은 docs reference.

1

당신은 컬렉션에있는 모든 문서를 업데이트 몽구스 Model.update를 사용할 수 있습니다.

User.update({}, { friends: [] }, { multi: true }, function (err, raw) { 
    if (err) return handleError(err); 
    console.log('The raw response from Mongo was ', raw); 
}); 

과도한 작업이므로 컬렉션이 크다면 프로덕션 환경에서는 사용하지 않는 것이 좋습니다. 그러나 귀하의 경우에는 괜찮을 것입니다.

+0

그럼 제작 과정에서 어떻게해야합니까? – jaytj95

+1

이것은 한 번만하고 싶은 것입니까? 그렇다면 MongoDB 셸 스크립트를 사용하는 것이 더 나은 옵션 일 수 있습니다. –

+0

나는이 일을 오직 가끔한다. 일반적으로 모델을 업데이트하고 싶을 때가 많습니다. – jaytj95

관련 문제