{"id":1262,"date":"2014-05-05T00:33:07","date_gmt":"2014-05-05T00:33:07","guid":{"rendered":"http:\/\/www.rezafaisal.net\/?p=1262"},"modified":"2014-05-05T00:35:22","modified_gmt":"2014-05-05T00:35:22","slug":"import-output-json-dari-twiiter-ke-mongodb","status":"publish","type":"post","link":"https:\/\/www.rezafaisal.net\/?p=1262","title":{"rendered":"Import output JSON dari Twitter ke MongoDB"},"content":{"rendered":"<p>Karena ngoding iseng untuk mengambil tweet dengan bantuan library Tweetinvi (<a title=\"https:\/\/tweetinvi.codeplex.com\/\" href=\"https:\/\/tweetinvi.codeplex.com\/\">https:\/\/tweetinvi.codeplex.com\/<\/a>) akhirnya dapat juga \u201cbeberapa\u201d tweets dalam sebuah file JSON.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2014\/05\/blog12.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"blog1\" alt=\"blog1\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2014\/05\/blog1_thumb1.jpg\" border=\"0\" width=\"550\" height=\"378\" \/><\/a><\/p>\n<p>Sayangnya output JSON yang didapatkan kurang friendly untuk dibaca manusia, karena sudah di-minify menjadi sebaris. Hal ini cukup menyusahkan jika ingin mengetahui struktur dari dokumen JSON yang telah didapat. Tetapi untungnya output JSON itu dapat kita lihat secara manusiawi dengan bantuan Online JSON Viewer (<a title=\"http:\/\/jsonviewer.stack.hu\/\" href=\"http:\/\/jsonviewer.stack.hu\/\">http:\/\/jsonviewer.stack.hu\/<\/a>) ini. Seperti pada gambar di bawah ini.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2014\/05\/blog21.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"blog2\" alt=\"blog2\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2014\/05\/blog2_thumb1.jpg\" border=\"0\" width=\"550\" height=\"435\" \/><\/a><\/p>\n<p>Dari gambar di atas maka dapat dilihat struktur dari output JSON yang telah didapatkan.\u00a0 Karena ada kebutuhan untuk menyimpan dokumen status ke dalam collection mongodb maka perlu ada \u201cpenghilangan\u201d bagian yang tidak diperlukan pada output JSON yaitu bagian search_metadata. Setelah itu juga perlu dilakukan mengedit agar dokumen 0-14 menjadi array yang kira-kira dapat dilihat seperti contoh berikut :<\/p>\n<div style=\"overflow: auto; cursor: text; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\" id=\"codeSnippetWrapper\">\n<div style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\" id=\"codeSnippet\">\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: white; border-style: none; padding: 0px;\">[<\/pre>\n<p><!--CRLF--><\/p>\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\">    { field1: \"Widget 1\", field2: \"This is Widget 1\" },<\/pre>\n<p><!--CRLF--><\/p>\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: white; border-style: none; padding: 0px;\">    { field1: \"Widget 2\", field2: \"This is Widget 2\" }<\/pre>\n<p><!--CRLF--><\/p>\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\">]<\/pre>\n<p><!--CRLF--><\/p>\n<\/div>\n<\/div>\n<p>Setelah berhasil \u201cdibersihkan\u201d maka tinggal diimport ke mangodb dengan bantuan mongoimport dengan sintaks perintah seperti berikut :<\/p>\n<div style=\"overflow: auto; cursor: text; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\" id=\"codeSnippetWrapper\">\n<div style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\" id=\"codeSnippet\">\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: white; border-style: none; padding: 0px;\"><span style=\"color: #606060;\" id=\"lnum1\">   1:<\/span> mongoimport.exe --db nama_db --collection nama_collection --type json --file path_dan_nama_file --jsonArray<\/pre>\n<p><!--CRLF--><\/p>\n<\/div>\n<\/div>\n<p>Sebagai contoh :<\/p>\n<div style=\"overflow: auto; cursor: text; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\" id=\"codeSnippetWrapper\">\n<div style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\" id=\"codeSnippet\">\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: white; border-style: none; padding: 0px;\">C:\\Program Files\\MongoDB 2.6 Standard\\bin<span style=\"color: #0000ff;\">&gt;<\/span>mongoimport.exe --db IlkomUnlamDB --collection Twitter --type json --file WriteLines.txt --jsonArray<\/pre>\n<p><!--CRLF--><\/p>\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\">connected to: 127.0.0.1<\/pre>\n<p><!--CRLF--><\/p>\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: white; border-style: none; padding: 0px;\">2014-05-04T23:33:05.822+0800 check 9 15<\/pre>\n<p><!--CRLF--><\/p>\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\">2014-05-04T23:33:05.822+0800 imported 15 objects<\/pre>\n<p><!--CRLF--><\/p>\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: white; border-style: none; padding: 0px;\"><\/pre>\n<p><!--CRLF--><\/p>\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\">C:\\Program Files\\MongoDB 2.6 Standard\\bin<span style=\"color: #0000ff;\">&gt;<\/span><\/pre>\n<p><!--CRLF--><\/p>\n<\/div>\n<\/div>\n<p>Dari contoh di atas dapat dilihat telah diimport sebanyak 15 dokumen sesuai dengan jumlah statuses yang dapat dilihat pada gambar di atas.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2014\/05\/blog31.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"blog3\" alt=\"blog3\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2014\/05\/blog3_thumb1.jpg\" border=\"0\" width=\"550\" height=\"314\" \/><\/a><\/p>\n<p>Selanjutnya tinggal melakukan data dengan field yang diinginkan. Jika untuk keperlukan text-mining yang mana diperlukan hanya nanti bisa mengambil field text.<\/p>\n<p>dengan perintah :<\/p>\n<div style=\"overflow: auto; cursor: text; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\" id=\"codeSnippetWrapper\">\n<div style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\" id=\"codeSnippet\">\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: white; border-style: none; padding: 0px;\">db.Twitter.find({}, {\"text\": 1})<\/pre>\n<p><!--CRLF--><\/p>\n<\/div>\n<\/div>\n<p>Hasil dari perintah di atas akan menampilkan field _id dan text.<\/p>\n<p>Kemudian jika dilihat pada gambar di bawah ini dapat dilihat terdapat beberapa emmeded document di dalam dokumen status seperti dokumen user yang terdapat di dalam dokumen status.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2014\/05\/blog41.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"blog4\" alt=\"blog4\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2014\/05\/blog4_thumb1.jpg\" border=\"0\" width=\"550\" height=\"261\" \/><\/a><\/p>\n<p>Nah jika ingin menampilkan field _id, field screen_name dari dokumen user dan field text maka dapat digunakan perintah berikut :<\/p>\n<div style=\"overflow: auto; cursor: text; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\" id=\"codeSnippetWrapper\">\n<div style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\" id=\"codeSnippet\">\n<pre style=\"overflow: visible; font-size: 8pt; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: white; border-style: none; padding: 0px;\">db.Twitter.find({}, {\"text\":1, \"user.screen_name\":1})<\/pre>\n<p><!--CRLF--><\/p>\n<\/div>\n<\/div>\n<p>Selamat mencoba.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Karena ngoding iseng untuk mengambil tweet dengan bantuan library Tweetinvi (https:\/\/tweetinvi.codeplex.com\/) akhirnya dapat juga \u201cbeberapa\u201d tweets dalam sebuah file JSON. Sayangnya output JSON yang didapatkan kurang friendly untuk dibaca manusia, karena sudah di-minify menjadi sebaris. Hal ini cukup menyusahkan jika&hellip;<\/p>\n","protected":false},"author":1,"featured_media":1255,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[6],"tags":[117],"class_list":["post-1262","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-softwaredev","tag-mongodb"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.rezafaisal.net\/wp-content\/uploads\/2014\/05\/blog1_thumb1.jpg","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p1sNAL-km","_links":{"self":[{"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1262"}],"version-history":[{"count":1,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1262\/revisions"}],"predecessor-version":[{"id":1263,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1262\/revisions\/1263"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/media\/1255"}],"wp:attachment":[{"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}