2014-09-09 2 views
0

나는 여전히 MongoDB에 대해 배우고 있으며, 누군가 내가 직면하고있는 상황을 도울 수 있는지 알고 싶습니다.한 문서에서 다른 문서로 데이터를 삽입하는 MongoDB 대량 업데이트

관계형 데이터베이스처럼 작성된 DB 구조를 인수하려고합니다. 모든 문서에 전체 문서 (문서에만 대한 참조 대신)를 포함시키고 싶습니다.

은 제가 할 수있는 최선을 설명하려고하자

내가

activity : { 
    "user_id" : ObjectId("5324a18d3061650002030000") 
} 

USER_ID 사용자라는 다른 문서의 기본 ID입니다 자사의 사용자 ID를 사용하여 사용자를 참조하는 활동 테이블이 있습니다.

사용자 :

활동 : {

 "user_id" : ObjectId("5324a18d3061650002030000") 
     user: 
    { 
      "_id" : ObjectId("5324a18d3061650002030000"), 
      "active" : true, 
      "birth_date" : ISODate("1980-03-25T00:00:00.000Z") 
    } 

}

나는 것 내가 뭘하고 싶은 내 활동을 문서로 내 사용자를 삽입하는 것입니다

{ 
    "_id" : ObjectId("5324a18d3061650002030000"), 
    "active" : true, 
    "birth_date" : ISODate("1980-03-25T00:00:00.000Z") 
} 

내 모든 활동 문서 (모든 사용자가 물론 다른 사용자를 언급한다는 것을 알고 있음)에 대해 그렇게하고 싶습니다. 제발 최선을 다해주세요.

고맙습니다.

답변

0

그것은이 같은 간단합니다 :

db.users.find().forEach(function(doc) { 
    db.activity.update({user_id: doc._id}, {$set:{user:doc}}); 
}); 
+0

답변 주셔서 감사 많은! 하지만 MongoDB 셸을 사용하여이 업데이트를하려고합니다. JS 개체를 사용하지 않고 수행 할 수 있습니까? – Emdis

+0

@Emdis,'user' 콜렉션의 문서를 버퍼링하지 않으면, 아마 단일 업데이트를 위해'user' 콜렉션의 모든 쿼리를 실행해야합니다. 이것은 매우 느릴 것입니다. – Wizard

+0

매력처럼 작동합니다. 다시 한 번 고마워 !!!!! – Emdis

관련 문제