Latest web development tutorials

MongoDB를 데이터베이스 참조

이전 섹션에서, 우리는 문서의 데이터 구조를 표준화 관계 MongoDB를 MongoDB를 참조 언급.

MongoDB를 두 참조가 :

  • 참조 설명서 (매뉴얼 참조)
  • DBREFS

참조 설명서 대 DBREFS

이와 같은 경우를 생각해 볼 수 있습니다, 우리는 다른 세트 다른 주소에 저장 (address_home, address_office, address_mailing 등) (주소, 사무실 주소, 우편 주소 등)가 있습니다.

우리가 다른 주소를 호출 할 때 따라서, 당신은 수집, 다수의 참조 문서에서 문서의 컬렉션을 지정해야합니다, 우리는 DBREFS를 사용해야합니다.


사용 DBREFS

DBRef 양식 :

{ $ref : , $id : , $db :  }

로 표시되는 세 개의 필드의 의미 :

  • $ 참고 : 컬렉션 이름
  • $ ID : 기준 ID
  • $ DB : 데이터베이스 이름, 선택적 매개 변수

다음의 예는 사용자 데이터 문서 DBRef 필드 주소를 사용

{
   "_id":ObjectId("53402597d852426020000002"),
   "address": {
   "$ref": "address_home",
   "$id": ObjectId("534009e4d852427820000002"),
   "$db": "w3cschoolcc"},
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin"
}

주소 DBRef 필드는 주소 참조 문서 address_home 수집 w3cschoolcc 데이터베이스에서, ID가 534009e4d852427820000002입니다 있습니다 지정합니다.

다음 코드, 우리는 $ 심판 매개 변수 (address_home 세트)에 의해 지정된 지정된 주소 정보를 사용자 ID에서 컬렉션을 찾을 수있다 :

>var user = db.users.findOne({"name":"Tom Benzamin"})
>var dbRef = user.address
>db[dbRef.$ref].findOne({"_id":(dbRef.$id)})

위의 예는 address_home 수집 주소 데이터를 반환 :

{
   "_id" : ObjectId("534009e4d852427820000002"),
   "building" : "22 A, Indiana Apt",
   "pincode" : 123456,
   "city" : "Los Angeles",
   "state" : "California"
}