2017-03-09 5 views
-1

mongodbの複数のアドレスについては、通常はアドレスを配列に格納します。mongodbの複数のアドレスに対してカスタムアドレスタイプのスキーマを定義する方法

address:[ 
{ 
"type" : "home", 
"primary" : false,
        
"streetaddress" : "Some",
        
"locality" : "Farnborough", 
"region" : "England", 
"formatted" : "Farnborough, United Kingdom", 
"country" : "United Kingdom", 
"location" : [ 
-0.752615, 
51.2868939 
] 
}, 
{ 
"type" : "business",
       
"locality" : "London", 
"region" : "England", 
"formatted" : "The Gherkin, London, United Kingdom", 
"primary" : false, 
"streetaddress" : "30 St Mary Axe", 
"country" : "United Kingdom", 
"location" : [ 
-0.08030649999999999, 
51.51449179999999 
] 
} 
] 

しかし、キーなどで特定のアドレスをフェッチするには、家庭やビジネスでは、配列をループする必要があります。任意の代替の方法は、あなたは正確にあなたが配列の特定の値を照会するつもりだ知っているとあなたが言った値を知っていれば、

{ 
     home_address: 
       { 
       "streetaddress" : "Some",
   
       "locality" : "Farnborough", 
       "region" : "England", 
       "formatted" : "Farnborough, United Kingdom", 
       "country" : "United Kingdom", 
       "location" : [ 
           -0.752615, 
           51.2868939 
          ] 
      }, 
    business_address : { 
       "locality" : "London", 
       "region" : "England", 
       "formatted" : "The Gherkin, London, United Kingdom", 
       "primary" : false, 
       "streetaddress" : "30 St Mary Axe", 
       "country" : "United Kingdom", 
       "location" : [ 
           -0.08030649999999999, 
           51.51449179999999 
          ], 
      }, 
    primary_address : "home_address" 

    } 
+0

を見てから利益を得ることも

、あなたがしてアドレスを取得したいの基準は何ですか? –

+0

更新された質問。クエリは、このシナリオのjson形式の記述方法に関連しています。アドレス配列にループせずに "home"アドレスを取得したいところです。 – jit

答えて

0

一般的に以下のように定義する以外にあり、それがに良いですその値をキーとしてサブ文書に変換します。あなたは上記の持っているものと同様に

"address": { 
    "type_home": { "street": ... }, 
    "type_business": {"street": ...}, 
    "primary": "type_home", 
    "available": ["type_home", "type_business"] 
} 

柔軟なスキーマはMongoDBの機能の一部であり、あなたはあなたのアプリケーションの使用を最適化するためにこれを利用する必要があります。上記のスキーマは、配列をループするよりも速く特定のアドレスを照会するのに役立ちます。あなたが「主」キーで何を意味するか、または、別の言い方をする方のdata models examples

関連する問題