2016-10-04 44 views
0

我想有我MongoDB的文档在这个结构中的MongoDB多个JSON元素...插入使用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" 
     } 
    ]} 

我尝试,直到user_mention但我有一个问题,在创建“retweeted_status”阵列。 这些信息是从推文中提取的(json格式) Git文件附在这里Code Here 请帮我解决这个问题。

+0

问题是什么? – Backtrack

+0

它以这种格式插入“Retweeted_status”:[ “status:#Damasco ha l'audio”“ ”created_at:Tue Sep 27 23:09:45 BST 2016“, ”lang:fr“ ]正确的一个 – prabhu

回答

0

从您的要点,我发现要附加到original_tweet_infooriginal_statusoriginal_tweet_info是一个字符串数组。你需要做的是,将这些值附加到retweet_status文档中。

例子:

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

追加这个retweet_statusArrayList<Document> re_twts 然后追加该re_twtsoriginal_status

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

非常感谢! – prabhu

0

如果这是你所需的数据结构: retweeted_status: { “文本”: “sdfsjfksdf”, “日期”: “ISODate(” 2016-07-20T08:49:39Z “)”, “郎”: “FR” } ]

那么你的代码应该是这样的,

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);

//插入NEW_STATUS到labTweets收集

 collection.insertOne(original_status); 
+0

@拉达克里希南original_tweet_info.add(original_tweet_info_object);引发我一个错误 – prabhu

+0

请正确校验码,original_tweet_info是ArrayList的,并original_tweet_info_object是文件,因此添加文件到ArrayList中,不会引发错误 – radhakrishnan

+0

谢谢。这么多!!!我用Original_tweet_info作为字符串列表,这就是为什么它会抛出一个错误 – prabhu