Latest web development tutorials

MongoDBのデータベースの参照

前の節では、文書のデータ構造を標準化するために関係のMongoDB MongoDBの参照を述べました。

MongoDBは二つの参照があります。

  • リファレンスマニュアル(取扱説明書参照)
  • DBREFS

リファレンスマニュアル対DBREFS

このようなシナリオを考えてみましょう、我々は別のセット別のアドレスに格納されている(address_home、address_office、address_mailingなど)(アドレス、オフィスの住所、メールアドレスなど)を持っています。

私たちは別のアドレスを呼び出したときにこのように、あなたが収集、複数の参照文書から文書のコレクションを指定する必要があり、我々はDBREFSを使用する必要があります。


使用DBREFS

DBRefフォーム:

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

によって表される三つのフィールドの意義:

  • $文献:コレクション名
  • $イド:参照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フィールドはアドレスの参照文書を指定するidが534009e4d852427820000002で、address_homeコレクションw3cschoolccデータベースの下にあります。

次のコードは、我々は$ 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"
}