Latest web development tutorials

referências de banco de dados MongoDB

Na seção anterior, mencionamos a relação MongoDB MongoDB referência para padronizar a estrutura de dados do documento.

MongoDB tem duas referências:

  • manual de referência (Referências ao Manual)
  • DBRefs

DBRefs vs manual de referência

Considere um cenário como esse, temos um conjunto diferente (address_home, address_office, address_mailing, etc.) armazenados em um endereço diferente (endereço, endereço do escritório, endereço, etc.).

Assim, quando chamamos endereço diferente, você precisa especificar uma coleção, uma coleção de documentos de várias referenciado documentos, devemos usar DBRefs.


Use DBRefs

formas DBRef:

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

Significado de três campos representados por:

  • $ Ref: nome da coleção
  • $ Id: id de referência
  • $ Db: Nome do banco de dados, parâmetros opcionais

O exemplo a seguir usa um documento de dados do usuário DBRef, endereço campo:

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

campo deendereço DBRef especifica os documentos endereço referenciado estão sob address_home banco de dados w3cschoolcc coleção, id é 534009e4d852427820000002.

O código a seguir, temos que encontrar a coleção no endereço especificado ID de usuário informações especificadas pelo parâmetro $ ref (address_home set):

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

Os exemplos acima retornou address_home dados de endereço coleção:

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