MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडीबी बीएसओएन को डिसेरिएलाइज़ करना

रुचि रखने वालों के लिए, मुझे अपनी समस्या का समाधान मिल गया। यह पता चला है कि BSON प्रारूप को JSON की तरह ही Google के GSON ड्राइवर का उपयोग करके पार्स किया जा सकता है। एक मुश्किल हिस्सा जिससे मुझे निपटना था, वह मेरे टेम्पलेट वर्ग में नेस्टेड फ़ील्ड को स्टोर करने का एक तरीका ढूंढ रहा था। जीएसओएन को नेस्टेड दस्तावेज़ों को पार्स करने की अनुमति देने का तरीका आपके टेम्पलेट वर्ग में स्थिर आंतरिक कक्षाएं घोषित करना है। यहां एक उदाहरण दिया गया है:

public BSONObject {
   // Private fields
   private int foo;
   private String bar;

  // Constructors
  public BSONObject() {}

  // Static inner subclasses
  private Widget widget;
  private Duck quack;

  // Getters & Setters for outer class
  public int getFoo() {...}
  public String getBar() {...}
  public Widget getWidget() {...}
  public Duck getDuck() {...}

  // Static inner class declarations
  public static Widget {
     // include vars & getters/setters
  }

आदि.

उपरोक्त ढांचे के बाद टेम्पलेट वर्ग की घोषणा करने से मुझे जीएसओएन लाइब्रेरी से कोड की कुछ पंक्तियों का उपयोग करके मोंगोडीबी के स्वरूपण को आसानी से पार्स करने की अनुमति मिली। कृपया ध्यान दें कि मैंने अपनी वेब सेवा से डेटा लौटाते समय प्रत्येक प्रविष्टि में "\ n" को जोड़ दिया ताकि प्रत्येक दस्तावेज़ को मोंगो के बीएसओएन प्रतिक्रिया में अलग किया जा सके:

public String getNestedField() {
   Gson gson = new Gson();
   String [] split = response.split("\n");
   JsonParser p = new JsonParser();
   String json = split[0];
   BSONObject b = gson.fromJson(p.parse(json), BSONObject.class);
   return b.getWidget().getField();
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. PyMongo 2 या अधिक क्षेत्रों के साथ अद्वितीय अनुक्रमणिका बनाता है

  2. संयोजित क्षेत्रों के परिणाम का उपयोग करके दस्तावेज़ को अपडेट करें

  3. नेवला से सभी संग्रह कैसे खोजें

  4. सलाह की आवश्यकता:प्रतिक्रिया को MongoDB से ठीक से कैसे कनेक्ट करें

  5. डेबियन से मोंगोडब को हटा, शुद्ध, अनइंस्टॉल नहीं कर सकता