2016-10-04 7 views
0

Ich möchte meine mongoDB Dokument in dieser Struktur haben ...mehrere json Element Einfügen in MongoDB mit Java

{ 
    "_id" : ObjectId("578f547790ee5304306404ea"), 
    "status" : " que faire?", 
    "Likes" : 0, 
    "created_at" : ISODate("2016-07-20T08:49:39Z"), 
    "UniqueID" : "456511553", 
    "screen_name" : "xtraloveable1", 
    "Name" : "AmirGloir&Beauté", 
    "lang" : "fr", 
    "statuses_count" : 2914, 
    "friends_count" : 41, 
    "followers_count" : 47, 
    "Description" : "Je pense donc je twitte...", 
    "locationGEO" : "38000", 
    "Timezone" : null, 
    "Hashtags" : [ ], 
    "User_Mention" : [ 
      "CouponNetworkFR" 
    ], 
    retweeted_status[ 
     { 
      "text":"sdfsjfksdf", 
      "date":"ISODate("2016-07-20T08:49:39Z")", 
      "lang":"fr" 
     } 
    ]} 

Ich habe versucht, bis user_mention aber ich habe ein Problem, während „retweeted_status“ Array erstellen. Diese Informationen wurden aus Tweets extrahiert (JSON-Format) Git-Datei ist hier beigefügt Code Here Bitte helfen Sie mir, dieses Problem zu lösen.

+0

Was ist das Problem? – Backtrack

+0

Es fügt in diesem Format "Retweeted_status" ein: [ "Status: #Damasco ha l'Audio" " " erstellt: Tue Sep 27 23:09:45 BST 2016 ", " lang: fr " ] Welches ist nicht richtig eine eine – prabhu

Antwort

0

von Ihrem Gist fand ich, dass Sie original_tweet_info in original_status anhängen. Wo die original_tweet_info ist ein String-Array. Was Sie tun müssen, ist, fügen Sie die Werte in retweet_status Dokument.

Beispiel:

  retweet_status.add("Status:"+text); 
      retweet_status.add("created_at:"+dd); 
      retweet_status.add("retweetCount:"+retweetCount); 
      retweet_status.add("Likes:"+Likes); 

und

Anfügen dieser retweet_status in ArrayList<Document> re_twts dann diese anhängen re_twts in original_status

ArrayList<Document> re_twts = new ArrayList<Document>(); 
re_twts.append(retweet_status); 
..... 
.... 
original_status.append("Retweeted_status", re_twts); 
+0

Vielen Dank !!! Es funktioniert jetzt !!! – prabhu

0

Wenn dies Ihre erforderliche Datenstruktur: retweeted_status: [ { "text": "sdfsjfksdf", "Datum": "isodate (" 2016-07-20T08: 49: 39Z ")", "lang": "fr" } ]

Dann wird Ihr Code wie folgt sein sollte,

ArrayList<String> original_tweet_info = new ArrayList<String>(); 
    //create document 
     Document original_tweet_info_object = new Document(); 
     original_tweet_info_object.append("created_at:"+dd); 
     original_tweet_info_object.append("retweetCount:"+retweetCount); 
     original_tweet_info_object.append("Likes:"+Likes); 
     original_tweet_info_object.append("TimeZone:"+timezone); 

//add document in list of document 
original_tweet_info.add(original_tweet_info_object); 

original_status.append ("Retweeted_status", original_tweet_info);

// Insert new_status in die labTweets Sammlung

 collection.insertOne(original_status); 
+0

@ Radhakrishnan original_tweet_info.add (original_tweet_info_object), wirft mir einen Fehler – prabhu

+0

pls Code überprüft richtig, original_tweet_info ist Arraylist und original_tweet_info_object ist das Dokument, so Dokument in Arraylist hinzufügen, wirft keinen Fehler – radhakrishnan

+0

Danke. so viel !!! Ich habe Original_tweet_info als String-Liste verwendet, deshalb gibt es einen Fehler – prabhu

Verwandte Themen