2011-05-19 10 views
5

मैं एक ऐप बना रहा हूं जिसे फेसबुक ग्राफ डेटा का विस्तार करने में सक्षम होना चाहिए।एक नोएसक्यूएल (मोंगोडीबी) में फेसबुक ग्राफ़ स्टोर/सिंक करें

मैं नोएसक्यूएल स्टोरेज में नया हूं और मैं मदद की तलाश में हूं।

ग्राफ़ एपीआई का उपयोग करके, मैं एक उपयोगकर्ता को पुनः प्राप्त कर सकता हूं, क्योंकि मैं चाहता हूं कि मेरा ऐप कई सामाजिक ग्राफ प्रदाताओं को विस्तारित करने में सक्षम हो, मैं प्रत्येक विशिष्ट फेसबुक कुंजी को facebook सरणी सबसेट में पुनः प्राप्त कर दूंगा।

[User] => Array 
    (
     [_id] => 4dd50c139bcb233c0c000000 
     [name] => Foo Bar 
     [first_name] => Foo 
     [last_name] => Bar 
     [username] => fbar 
     [location] => Array 
      (
       [id] => 110774245616525 
       [name] => Paris, France 
      ) 

     [gender] => male 
     [email] => [email protected] 
     [timezone] => 2 
     [locale] => fr_FR 
     [facebook] => Array 
      (
       [id] => 12345678 
       [link] => http://www.facebook.com/foobar 
       [verified] => 1 
       [updated_time] => 2011-05-16T17:30:23+0000 
       [picture] => https://graph.facebook.com/12345678/picture 
      ) 

     [created] => MongoDate Object 
      (
       [sec] => 1305807891 
       [usec] => 0 
      ) 
    ) 
  • इस अच्छा अभ्यास है?

फिर मैं अपने दोस्तों को पकड़ता हूं, और मैं उन्हें अपने डेटाबेस के साथ समन्वयित रखने में सक्षम होना चाहता हूं। मुझे नहीं पता कि मुझे प्रत्येक मित्र को अलग-अलग उपयोगकर्ताओं के रूप में पंजीकृत करना चाहिए और संदर्भों का उपयोग करने का प्रयास करना चाहिए, या यदि मैं केवल Friend सबसेट जोड़ सकता हूं।

  • सबसे अच्छा प्रदर्शन और सिंक में रखने के लिए सबसे आसान क्या होगा?

    [User] => Array 
        (   
         [Friend] => Array 
         (
          [0] => Array 
           (
            [id] => 12345678 
            [name] => Foo Bar 
           ) 
    
          [1] => Array 
           (
            [id] => 12345678 
            [name] => Foo Bar 
           ) 
    
          [2] => Array 
           (
            [id] => 12345678 
            [name] => Foo Bar 
           ) 
    
  • मित्रसूची के साथ किसी अन्य स्तर पर समस्या बढ़ती है, मुझे उन्हें कैसे स्टोर करना चाहिए ?? सब कुछ एम्बेड करें (और मेरे उपयोगकर्ता में डुप्लिकेट का एक टन है) या संदर्भ का उपयोग करें? मैं कैसे करूं ?

मैंने पढ़ा: http://www.mongodb.org/display/DOCS/Trees+in+MongoDB जो काफी उपयोगी है ... लेकिन मैं अभी भी अनिश्चित मुझे क्या करना चाहिए हूँ।

बहुत बहुत धन्यवाद।

उत्तर

4

मेरे पास एक समान एप्लीकेशन था और मैंने दोस्तों को दूसरे उपयोगकर्ता के रूप में संग्रहीत किया। लेकिन सुनिश्चित करें कि आपके पास एक झंडा है जो इंगित करता है कि वह उपयोगकर्ता एक एप्लिकेशन उपयोगकर्ता है या नहीं, या किसी भी समय डेटा किसी भी तरह अराजक होगा।

उपयोगकर्ता के लिए

:

{ 
    fbid: xxxx, 
    name : "xxxxx", 
    ...... 
    friends : [ xxxx, xxxx, xxxx ], 
    is_app_user : true 
} 
प्रत्येक दोस्त (जो उपयोगकर्ता आवेदन नहीं कर रहे हैं) के लिए

:

{ 
    fbid: xxxx, 
    name : "xxxxx", 
    is_app_user : false 
} 

और जब वे भी के लिए लॉग इन आप अच्छी तरह से उनके लिए is_app_user : true बना सकते हैं।

पुनश्च: न fbid

+0

दिलचस्प लगता है कि आप मोंगो संदर्भों का उपयोग करते हैं या आप एक अलग प्रश्न में दोस्त प्राप्त करते हैं? – Olivier

+0

मैं एक अलग प्रश्न में दोस्तों को पसंद करना पसंद करता हूं – frail

0

http://www.mongodb.org/display/DOCS/Trees+in+MongoDB

इसके अलावा: आप तो एक ग्राफ स्टोर करने के लिए एक GraphDB का उपयोग करना चाहते हैं - हर काम सही उपकरण के लिए MongoDB संभावना नहीं है सामान्य रूप में रेखांकन के भंडारण के लिए सही विकल्प ...।

3

पर अद्वितीय सूचकांक डाल करने के लिए यह "एम्बेड संदर्भ बनाम" का सवाल है भूल जाते हैं।

यहां एक good reply on SO है।

यहां schema design पर आधिकारिक दस्तावेज़ हैं। इन सवालों को देखने शुरू करने के लिए वे एक अच्छी जगह हैं।

1

आपके जैसे ग्राफ को स्टोर करने के लिए आपको ग्राफ़डीबी का उपयोग करना चाहिए, दस्तावेज़ दस्तावेज़ नहीं। OrientDB आज़माएं: यह एक दस्तावेज़-ग्राफ nosql है जो दोनों दुनिया की सभी बेहतरीन सुविधाओं के साथ है। आपके उपयोग के मामले में सबसे महत्वपूर्ण विशेषता कुछ एमएस में हजारों रिश्तों को पार करने की क्षमता है! ओपन सोर्स और अपाचे 2 लाइसेंस प्राप्त है।

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