2015-03-17 10 views
6

के साथ फ़िल्टर शामिल है मेरी समस्या यह है कि मैं यह नहीं समझ सकता कि लूपबैक बैकएंड के साथ एक अनुरोध में बहुस्तरीय संबंध संरचना कैसे प्राप्त करें। मेरे पास 3 मॉडल हैं: Continent, Country, County। मैं जो करना चाहता हूं वह एक महाद्वीप प्राप्त करना है, और सभी देशों और सभी काउंटी को प्राप्त करना है।मल्टी लेवल में लूपबैक जेएस

उन दोनों के बीच संबंध:

  • Continent hasMany Country, औरCountry belongsTo Continent
  • Country hasMany County, औरCounty belongsTo Country

तो बाकी API कॉल /api/Continent/1 रिटर्न

{ 
    "id": 1 
    "name":"Europe" 
} 

लिए अब, मैं Continent साथ सभी देशों और काउंटियों प्राप्त करना चाहते हैं, तो मैं /api/Continent/1?filters[include]=country

के लिए एक क्वेरी कर फिर भी, मैं countys नहीं मिलता है।

एक सूची प्राप्त करने के लिए मुझे किस तरह की क्वेरी करना चाहिए जिसमें संबंध स्तर दोनों शामिल हैं? इस तरह:

{ 
    "id": 1, 
    "name": "Europe", 
    "country": [ 
    id: 1, 
    name:"United Kingdom", 
    county:[ 
     {id:1,name:"Avon"}, 
     {id:2,name:"Bedfordshire"}, 
     ... 
    ], 
    ... 
    ] 
} 

आपकी मदद के लिए धन्यवाद!

+0

ऐसा क्यों downvoted किया गया था? मैंने इसे यथासंभव स्पष्ट करने की कोशिश की और मुझे और सुधार करने में खुशी होगी। –

+0

http://stackoverflow.com/questions/26997368/loopback-2-4-how-to-query-certain-fields-of-related-model-via-rest-api – IvanZh

+0

का डुप्लिकेट लगता है यह डुप्लिकेट नहीं है । यह भी एक बहुत ही वैध सवाल है। इच्छा है कि किसी के पास इसका जवाब हो। एक ही समस्या का सामना करना! –

उत्तर

4

वाक्य रचना है:

/api/Continent/1?filter={"include": {"country": "countys"}} 
2

हैलो उम्मीद है कि उत्तर के लिए बहुत देर हो चुकी है। इस मुद्दे पर अंदर और बाहर अपने दस्तावेज़ों की पूरी तरह से फ़्लिप करने के बाद, मैंने उस गहरे स्तर के एकाधिक को प्राप्त करने के लिए एक दूरस्थ विधि लिखना समाप्त कर दिया। यह इतना स्पष्ट नहीं है कि आरईएसटी एपीआई स्तर पर इसके बारे में कैसे जाना है।

Continent.listContinents = function(limit,skip,order,cb) { 
Continent.find({ 
    limit:limit, 
    skip:skip, 
    order:order, 
    include:[{country:'county'}], 
}, cb); 
}; 

Continent.remoteMethod('listContinents', { 
description:"List continents. Include the related country and county information", 
returns: {arg: 'continents', type: 'array'}, 
accepts: [{arg: 'limit', type: 'number', http: { source: 'query' }}, 
      {arg: 'skip', type: 'number', http: { source: 'query' }}, 
      {arg: 'order', type: 'string', http: { source: 'query' }}], 
      http: {path:'/list', verb: 'get'} 
}); 

मैं कुछ अतिरिक्त क्वेरी स्ट्रिंग पैरामीटर सीमा, आदेश जोड़ा गया है और छोड़ pagnination सक्षम करने के लिए और ordering..but नहीं एक

:) चाहिए है इसके अलावा इस आप पहले से ही है संबंध प्रकार के बीच में परिभाषित किया गया है यह सोचते हैं महाद्वीप और देश तो देश और काउंटी।

संबंधित मुद्दे