몽고DB 튜토리얼login
몽고DB 튜토리얼
작가:php.cn  업데이트 시간:2022-04-21 17:49:03

MongoDB 데이터베이스 참조


이전 장 MongoDB 관계에서 데이터 구조 문서 표준화를 위한 MongoDB 참조를 언급했습니다.

MongoDB 참조에는 두 가지 유형이 있습니다.

  • Manual References(Manual References)

  • DBRefs


DBRefs 대 수동 참조

다른 주소(집 주소, 사무실 주소, 우편 주소)를 다른 컬렉션(address_home, address_office, address_mailing 등)에 저장하는 시나리오를 고려해보세요. ) 주소 등).

이런 방식으로 다른 주소를 호출할 때도 컬렉션을 지정해야 합니다. 문서가 여러 컬렉션의 문서를 참조하는 경우 DBRef를 사용해야 합니다.


DBRef 사용

DBRef 형식:

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

세 필드의 의미는 다음과 같습니다.

  • $ ref : 컬렉션 이름

  • $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"
}

address입니다. DBRef 필드는 참조된 주소 문서가 다음 위치에 있는 w3cschoolcc 데이터베이스임을 지정합니다. address_home 컬렉션이며 ID는 534009e4d852427820000002입니다.

다음 코드에서는 $ref 매개변수(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"
}

PHP 중국어 웹사이트