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